【Python3】xlsxをcsvに変換する【xlsx2csv】

大量かつ大きめxlsxファイルを同名のままcsvに変換したかったのですが、良い方法やソフトが見つからなかったため自力で行いました。

多分もっとスマートなやり方があるんだろうなと思いつつ、とりあえずメモ。

環境

Mac OSX Yosemite
zsh
Python3

準備

pipでxlsx2csvを入れます。

pip install xlsx2csv

これで恐らくxlsx2csvコマンドが使えるようになったはず。

シェルスクリプト

変換のためのシェルスクリプトを書きます。

files="/path/to/xlsx/dir/*.xlsx"
save_dir="/path/to/save/dir/"

for filepath in ${files}
  do
    filename=`basename ${filepath} .xlsx`
    xlsx2csv -s 1 $filepath $save_dir$filename.csv
  done

-s 1はxlsx2csvのオプションです。
1枚目のシートのみ出力することを意味します。
オプションは適宜設定して下さい。

記述が終わったら、ファイルを適当な場所に保存します。
とりあえずconvert_xlsx2csv.shという名前で保存します。

ちなみに、保存先のディレクトリは存在する必要がある点のみ注意です。

後は保存したファイルに実行権限を与えて、shファイルを実行すれば出力されます。

# convert_xlsx2csv.shのあるディレクトリで
chmod +x convert_xlsx2csv.sh
./convert_xlsx2csv.sh

上手くいけば、csvと化した元xlsxファイルたちが見られるはずです。