16
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】すべてのシートの印刷設定を行う。

Last updated at Posted at 2021-04-19

pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、印刷設定に関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。

何気に、印刷設定を行うのって苦痛ではないですか?
ヘッダーだったり、フッターだったり・・・。

印刷を行う属性一覧

調べてみると、印刷の設定を行う属性が沢山ありました。
主要と思われる所を以下にまとめています。

  • print_area:印刷範囲
  • print_title_cols:常に印刷する列
  • print_title_rows:常に印刷する行
  • oddHeader.center.text:ヘッダー中央部
  • oddFooter.center.text:フッター中央部
  • page_setup.orientation:印刷の向き(横:ORIENTATION_PORTRAIT)(縦:ORIENTATION_LANDSCAPE)
  • page_setup.fitToWidth:ページ数に合わせて印刷する設定(横)1ページなら、「1」自動なら、「0」
  • page_setup.fitToHeight:ページ数に合わせて印刷する設定(縦)1ページなら、「1」自動なら、「0」
  • sheet_properties.pageSetUpPr.fitToPage:fitToWidth属性、fitToHeight属性を有効にする
  • page_setup.paperSize:用紙サイズ

たぶん、これぐらいだと思います。

最終的なコード

from openpyxl import load_workbook

print_area = 'A1:D50'
print_title_rows = '1:5'
header_text = '&F'
footer_text = '&P / &Nページ'

wb = load_workbook('サンプル.xlsx')

for ws in wb.worksheets:
    # プリントエリアを設定
    ws.print_area = print_area
    # 常に印刷する行を指定
    ws.print_title_rows = print_title_rows
    # ヘッダーを指定
    ws.oddHeader.center.text = header_text
    # フッターを設定
    ws.oddFooter.center.text = footer_text

    wps = ws.page_setup
    # 印刷の向きを設定
    wps.orientation = ws.ORIENTATION_LANDSCAPE
    # 横を1ページ
    wps.fitToWidth = 1
    # 縦を自動
    wps.fitToHeight = 0
    # fitTo属性を有効にする
    ws.sheet_properties.pageSetUpPr.fitToPage = True
    # 用紙サイズを設定
    wps.paperSize = ws.PAPERSIZE_A4

wb.save('サンプル_印刷設定.xlsx')

気を付けたポイントは

worksheets属性で全シートを取得して繰り返し処理をする。

ヘッダー、フッターには
ブック名を表す'&F'、ページ番号を表す'&P'、総ページ数を表す'&N'
を、それぞれ設定した。

page_setup.fitToWidth属性、page_setup.fitToHeight属性を使用した場合は
sheet_properties.pageSetUpPr.fitToPage属性を「True」にしないと有効にならない。

と言うところでしょうか。

比較的簡単に、前ページ変更できるのでお勧めです。

16
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?