[Python]openpyxlライブラリでExcelのシートへ設定
前の記事で、以下のコード部分がopenpyxlライブラリでExcelワークシートを作っているところです。 ws は「ワークシート」であります。
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
こいつにいろいろ頼むと列幅変えたり、罫線引いたりできるのであります。例えば列幅設定は以下のコードになります。
ws.column_dimensions['A'].width = 5
ws.column_dimensions['B'].width = 13
ws.column_dimensions['C'].width = 13
印刷関係の設定も以下のように楽々です。
from openpyxl.workbook import Workbook
ws.print_title_rows = '1:1'
ws.oddFooter.center.text = "[Page] / N ページ"
ws.oddHeader.center.text = "一覧表"
ws.page_setup.orientation = ws.ORIENTATION_LANDSCAPE
ws.page_setup.fitToWidth = 1
ws.page_setup.fitToHeight = 0
ws.sheet_properties.pageSetUpPr.fitToPage = True
上の設定でやっているのは。以下の通り。
- 1行目を印刷のときのヘッダ行として毎ページ出す
- フッターへ ページNo.を出す
- ヘッダーに「一覧表」という文字列を出す
- 用紙を横向きに
- 印刷の時、横1ページ、縦は複数ページで印刷する
よくExcelの印刷設定で見るやつです。
PythonでExcelを読み書きして何が嬉しいかというと、データを取り込んじゃえばPythonのデータ構造とか言語仕様の世界ですっきりプログラムが書けるってところかなと思います。VBAは不得意なので…