こんにちは。masm11 です。
Python で .xlsx
ファイルを作成したかったので openpyxl に挑戦してみました。
簡単に使えましたので、その方法を紹介したいと思います。
インストールはコマンドラインで以下のようにします。
pip install openpyxl
では、まずは簡単に A1〜C3 セルに数値を入れる方法から。 なお、以下のコードでは、Python 3.6 以上を想定した書き方をしています。
#!/usr/bin/env python import openpyxl wb = openpyxl.Workbook() ws = wb.active num = 0 for r in [ '1', '2', '3' ]: for c in [ 'A', 'B', 'C' ]: ws[f'{c}{r}'] = num num += 1 wb.save('sample-1.xlsx')
これで sample-1.xlsx ができます。LibreOffice で開いた画面は以下のようになりました。
次に、各数値を今度は文字列にしてみましょう。
#!/usr/bin/env python import openpyxl wb = openpyxl.Workbook() ws = wb.active num = 0 for r in [ '1', '2', '3' ]: for c in [ 'A', 'B', 'C' ]: ws[f'{c}{r}'] = str(num) num += 1 wb.save('sample-2.xlsx')
これでもいいと言えばいいのですが、セルの値の先頭に '
が付いて、
'0
などとなってしまいました。
ここは書式設定をするのが良いでしょう。
数値形式は以下のページの FORMAT_***
が使えそうです。
https://openpyxl.readthedocs.io/en/stable/_modules/openpyxl/styles/numbers.html
この中から FORMAT_TEXT
を指定してみました。
#!/usr/bin/env python import openpyxl wb = openpyxl.Workbook() ws = wb.active num = 0 for r in [ '1', '2', '3' ]: for c in [ 'A', 'B', 'C' ]: ws[f'{c}{r}'].number_format = openpyxl.styles.numbers.FORMAT_TEXT ws[f'{c}{r}'] = str(num) num += 1 wb.save('sample-3.xlsx')
これで以下のようにテキストになりました。
以上のように、openpyxl はとても使いやすそうです。 今後もお世話になりそうな予感がしています。
ではまた。