Python+openpyxlでPythonからExcelファイルを作ってみた
Abstract
Pythonのopenpyxlというライブラリを使って、pythonからエクセルファイルの作成・編集を行ってみた。
Introduction
仕事ではPythonを使った測定自動化、データ解析を行っている。 次設計工程に伝える際には、これまではPythonで解析した結果をcsv形式にし、更にExcelファイルに貼り付けてレポート化していた。 しかし、データ種が増え解析後データがそこそこの分量になってくるとコピペが面倒だし、何より時間がかかるのが問題だった。
Pythonのopenpyxlというライブラリを使うとPythonからExcelファイルの読み書きができることを知ったので、試してみた。
Setup and Results
Install
pip install openpyxl
コード
新規ファイルの作成
from openpyxl import Workbook wb = Workbook() wb.save("sample1.xlsx")
既存ファイルの読み込み
from openpyxl import load_workbook wb = load_workbook('test.xlsx')
先頭から行を追加
wb = Workbook() ws = wb.active headers = ["x", "y1", "y2"] d =[[1, 2, 3], [50, 60, 70], [35, 82, 11]] ws.append(headers) for row in d: ws.append(row)
Pandasのデータフレームを書き出す場合
wb = Workbook() ws = wb.active df = pd.DataFrame(d) df.columns = headers for r in dataframe_to_rows(df, index=True, header=True): ws.append(r) for cell in ws['A'] + ws[1]: cell.style = 'Pandas' wb.save("pandas_openpyxl.xlsx")
ワークシートの追加・名前の編集
ws1 = wb.create_sheet("Mysheet") ws2 = wb.create_sheet("Mysheet", 0) #新規シートの位置を指定
実行結果
cell styleとして'Pandas'を指定した場合には、自動で罫線がかかったファイルが出来上がった。
Conclusion
今までcsvに書き出していたデータが、Excel形式にするとシート単位でまとめられるので便利。 罫線は上記の通り、数式やグラフ作成まで対応しているようなのでいろいろと自動化が捗りそう。