Pythonライブラリで、Excel(エクセル)操作
今回はPythonライブラリの中で、Excel(エクセル)を操作できるライブラリを紹介していきます。本来、エクセルは表計算ソフトという立ち位置ではありますが、表計算は勿論、ちょっとした文書の作成、簡易的なデータベース、等のあらゆるツールとして利用されています。システム開発においても、設計書の類をエクセルで作成することは珍しくありません。
XlsxWriter
Github: https://github.com/jmcnamara/XlsxWriter
ドキュメント: https://xlsxwriter.readthedocs.io/
GithubのStarが1099、Watchが88と大変人気があります。また、更新も活発に行われているようです。
サンプルコード
"""XlsxWriterでのxlsx作成""" import xlsxwriter # demo.xlsxという名前で作成 workbook = xlsxwriter.Workbook('demo.xlsx') # シートの作成 worksheet = workbook.add_worksheet() # A列の幅を指定 worksheet.set_column('A:A', 20) # 太字にする設定を作成 bold = workbook.add_format({'bold': True}) # A1にHello と書き込み worksheet.write('A1', 'Hello') # A2にWorldと太字で書き込み worksheet.write('A2', 'World', bold) # 閉じる workbook.close()
openpyxl
Bitbucket: https://bitbucket.org/openpyxl/openpyxl
ドキュメント: https://openpyxl.readthedocs.io/en/latest/
Watchが111と、こちらも人気があるライブラリです。当初、PHPExcelをベースに開発がされていたようで、そちらに馴染みがある人ならばこちらが使いやすいかもしれません。
サンプルコード
"""openpyxlでのxlsx作成""" from openpyxl import Workbook wb = Workbook() # 現在開いているワークシートをws変数へ ws = wb.active # A1に42と書き込む ws['A1'] = 42 # 行を追加する。A2、B2、C2にそれぞれ1、2、3と入る ws.append([1, 2, 3]) # A2に現在日付を入れる(さっき入れた1が上書きされる) import datetime ws['A2'] = datetime.datetime.now() # sample.xlsxという名前で保存 wb.save("sample.xlsx")
xlwt
Github: https://github.com/python-excel/xlwt
ドキュメント: http://xlwt.readthedocs.io/en/latest/
GithubのStar625、Watch48、更新も最近まで行われているようです。エクセル関係のライブラリは英語情報しかないのですが、こちらのライブラリは
http://www.python-izm.com/contents/external/xlwt.shtml
で紹介されており、少し敷居が低いかもしれません。
また、「xlrd」というエクセル読み込みのための、似たようなライブラリも存在します。
https://github.com/python-excel/xlrd
サンプルコード
"""xlwtでのxlsx作成""" import xlwt from datetime import datetime # フォント、色の設定を作成 style0 = xlwt.easyxf('font: name Times New Roman, color-index red, bold on', num_format_str='#,##0.00') style1 = xlwt.easyxf(num_format_str='D-MMM-YY') wb = xlwt.Workbook() ws = wb.add_sheet('A Test Sheet') # A1に書き込み ws.write(0, 0, 1234.56, style0) # A2に日付を書き込み ws.write(1, 0, datetime.now(), style1) # A3に、1と書き込み ws.write(2, 0, 1) # B3に、1と書き込み ws.write(2, 1, 1) # C3に、=A3+B3の式を入れる ws.write(2, 2, xlwt.Formula("A3+B3")) # exmaple.xlsとして保存 wb.save('example.xls')
どれも高機能なライブラリですので、自分なりに書きやすそうなものをフィーリングで選んでも問題ないでしょう。
株式会社キャパでは、アプリの企画・開発についてご相談を承っています。
アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
アプリ開発:実績のご紹介