PythonのライブラリであるPandasであれば柔軟にExcelファイルの読み込みと書き込みができます。
こちらの記事では、Pandasを利用してExcelファイルの読み込み方法と書き込み方法を紹介します。
1. 読み込み
Excelファイルの読み込みはpd.read_excelを使用します。
細かい読み込み方法の指定はオプションで指定します。
1.1. 指定のシートのみ読み込み
引数のsheet_nameに、読み込みたいシート名を指定します。
この際に、0から始める数字かシート名を記述します。
# インデック番号で指定 df_sheet = pd.read_excel('sample.xlsx', sheet_name=0) print(df_sheet)
# Output A B C 0 1 5 9 1 2 6 10 2 3 7 11 3 4 8 12
# シート名で指定 df_sheet = pd.read_excel('sample.xlsx', sheet_name='Sheet1') print(df_sheet)
# Output # Output A B C 0 1 5 9 1 2 6 10 2 3 7 11 3 4 8 12
1.2. 指定した複数のシートの読み込み
複数のシートを読み込むときは、リスト形式で読み込むシート名を指定します。
リストの中に指定する内容は、0から始まる番号またはシート名を記述します。
戻り値には、読み込み時に指定したリスト内容の名称がキーで、値がDataFrameのdictが返されます。
df_sheet = pd.read_excel('sample.xlsx', sheet_name=[0, 'Sheet2']) print(df_sheet)
# Output
{0: A B C
0 1 5 9
1 2 6 10
2 3 7 11
3 4 8 12,
'Sheet2': A B C
0 11 15 19
1 12 16 20
2 13 17 21
3 14 18 22}
1.3. すべてのシートの読み込み
すべてのシートを読み込む時は、sheet_nameにNoneを指定します。
戻り値には、シート名がキーで値がDataFrameのdictが返されます。
df_sheet = pd.read_excel('sample.xlsx', sheet_name=None) print(df_sheet)
# Output
{'Sheet1': A B C
0 1 5 9
1 2 6 10
2 3 7 11
3 4 8 12,
'Sheet2': A B C
0 11 15 19
1 12 16 20
2 13 17 21
3 14 18 22}
2. 書き込み
ExcelファイルへのDataFrameの書き込みはpd.DataFrame.to_excelで行います。
注意点として、pd.DataFrame.to_excelだと新規作成または上書き保存ということです。
もし既存のExcelファイルにシートを追記するのであれば、pd.ExcelWriterを使用します。
2.1. DataFrameの書き込み (新規作成 or 上書き)
DataFrameのExcelファイルの書き込みはpd.DataFrame.to_excelを使用します。
このときは、新規作成または上書き保存となります。
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
})
df.to_excel('./sample_write.xlsx', sheet_name='NewSheet')
2.2. 複数のDataFrameの書き込み (新規作成 or 上書き)
複数のDataFrameを一度に書き込む場合は、pd.ExcelWriterを使用します。
この設定は新規作成または上書き保存となります。
df_1 = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
})
df_2 = pd.DataFrame({
'A': [11, 12, 13, 14],
'B': [15, 16, 17, 18],
'C': [19, 20, 21, 22]
})
with pd.ExcelWriter('./sample_write.xlsx') as writer:
df_1.to_excel(writer, sheet_name='NewSheet1')
df_2.to_excel(writer, sheet_name='NewSheet2')
2.3. 既存のExcelファイルに書き込み (追記)
既存のExcelファイルに追記する場合は、pd.ExcelWriterを使用します。
また、mode='a'を指定する必要があります。
# Excelファイルを作成しておく df_1 = pd.DataFrame({ 'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8], 'C': [9, 10, 11, 12] }) df_1.to_excel('./sample_write.xlsx', sheet_name='NewSheet1') # DataFrameを既存のExcelファイルに追記する df_2 = pd.DataFrame({ 'A': [11, 12, 13, 14], 'B': [15, 16, 17, 18], 'C': [19, 20, 21, 22] }) with pd.ExcelWriter('./sample_write.xlsx', mode='a') as writer: df_2.to_excel(writer, sheet_name='NewSheet2')
