LoginSignup
3
2

More than 5 years have passed since last update.

Python3でExcelファイルのすべてのシートを別々のCSVファイルに保存する

Last updated at Posted at 2018-10-13

データがExcelで提供されている。でもcsvで欲しい...
そんなことありますよね。
ひとつのシートならともかく、複数のシートが入ったExcelファイルをシートごとにcsvで出力するのは面倒です。
ググるとマクロとか出てくるんですが、CLIでやりたいですよね!GUI苦手です...
そこでPython3で解決できたのでメモ。

 方法

まず、必要なパッケージをインストールします。

 pip3 install xlrd pandas

では本題のpython3のコードです。簡単にできました。

import sys
import pandas as pd

target = sys.argv[1]
df = pd.read_excel(target, sheet_name=None)
for k in df.keys():
    out = "./mutations/" + k + ".csv"
    df[k].to_csv(out, index=False)

データ分析でよく使われるpandasでExcelファイルが読めたので助かりました。
以下に簡単に解説します。

  1. pd.read_excelを使うことで、引数で与えたExcelファイルtargetを読みます。sheet_name=Noneとすることで、すべてのシートを読み込み、シート名をキーとし、データフレームを値として持つ辞書が得られます。
  2. for文でそれぞれのシートをcsv形式で書き込みます。out変数は出力ファイル名です。indexはお好みで。Falseにすると indexは書き込まれません。
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2