PythonでExcelの印刷オプションを自動化!PrintOptionsの便利な使い方

openpyxl

はじめに:面倒な「印刷設定」、Pythonに任せてしまおう!

PythonでExcelレポートを自動生成できるようになった!…でも、そのファイルを印刷しようとすると、毎回手作業で「枠線を付けて…」「中央に配置して…」なんて設定をしていませんか?

その一手間、非常にもったいないです! openpyxlライブラリには、そうした面倒な印刷オプションをすべてコードで自動設定するための便利な機能、PrintOptionsが用意されています。

この記事では、PrintOptionsの特に便利な使い方に絞って、明日からすぐに使える実践的なテクニックを紹介します。もう二度と、印刷ダイアログで時間を無駄にするのはやめましょう。

PrintOptionsとは?シートごとの印刷設定スイッチ

PrintOptionsは、ワークシートオブジェクト(ws)に付属している、印刷設定専用のスイッチ群のようなものです。ws.print_optionsに続けて、設定したい項目のスイッチをTrue(オン)にするだけで、簡単に印刷設定を自動化できます。

# worksheetオブジェクト(ws)のprint_optionsに直接アクセス
ws.print_options.gridLines = True          # 枠線印刷をオン
ws.print_options.horizontalCentered = True  # 水平中央揃えをオン

とてもシンプルで直感的ですね。では、具体的にどんな便利なスイッチがあるのか見ていきましょう。

PrintOptionsの便利な使い方ベスト3

数ある設定項目の中でも、特に利用頻度が高く、効果絶大な3つの使い方を紹介します。

便利な使い方①:gridLinesとheadingsでレビュー用資料を一発作成

こんな時に便利!

  • データが正しいか他の人にレビューしてもらう時
  • 数式の参照セルを確認したい時

gridLinesTrueにすると、Excelの薄い灰色の枠線が、headingsTrueにすると行列番号(A, B, C…や1, 2, 3…)が印刷されます。

from openpyxl import load_workbook

wb = load_workbook("your_file.xlsx")
ws = wb.active

# レビューに便利なオプションをまとめてオンにする
ws.print_options.gridLines = True  # 枠線を印刷
ws.print_options.headings = True   # 行列番号を印刷

print("レビュー用の印刷設定を適用しました。")
wb.save("your_file_for_review.xlsx")

このコードを実行すれば、セルの位置が非常に分かりやすいレビュー用のExcelファイルが一瞬で完成します。

便利な使い方②:horizontalCenteredとverticalCenteredで見栄えを整える

こんな時に便利!

  • 表やグラフが小さく、印刷すると紙の左上に寄ってしまう時
  • 公式な提出書類として見栄えを良くしたい時

この2つのスイッチをTrueにするだけで、印刷内容が用紙のど真ん中に配置されます。

# ...前のコードの続き...

# 用紙の中央に印刷する設定
ws.print_options.horizontalCentered = True # 水平方向の中央
ws.print_options.verticalCentered = True   # 垂直方向の中央

print("ページ中央揃えの設定を適用しました。")
wb.save("your_file_centered.xlsx")

たった2行追加するだけで、レポートの印象がぐっとプロフェッショナルになります。

便利な使い方③:PageMarginsと組み合わせてレイアウトを完全制御

PrintOptionsは、前回紹介したPageMargins(余白設定)と組み合わせることで真価を発揮します。

from openpyxl.worksheet.page import PageMargins

# ...前のコードの続き...

# 余白を「狭い」に設定
ws.page_margins = PageMargins(left=0.25, right=0.25, top=0.75, bottom=0.75)

# さらに中央揃えも設定
ws.print_options.horizontalCentered = True
ws.print_options.verticalCentered = True

print("余白と中央揃えを組み合わせて設定しました。")
wb.save("your_file_perfect_layout.xlsx")

このように、余白と配置を両方コードで制御することで、印刷レイアウトの完全な自動化が実現します。

まとめ:PrintOptionsで「かゆいところ」に手を届かせる

今回は、openpyxlPrintOptionsの便利な使い方を解説しました。

  • **print_options**属性に直接アクセスしてスイッチを切り替えるだけ!
  • gridLines / headings: レビュー用資料の作成に超便利。
  • horizontalCentered / verticalCentered: 見栄えを整える必須設定。
  • **PageMargins**と組み合わせることで、印刷レイアウトを完全自動化できる。

PrintOptionsは、Excel自動化の「最後の仕上げ」とも言える重要な機能です。この便利な使い方をマスターして、データ作成から印刷まで、一切手作業のいらないストレスフリーな自動化環境を構築しましょう。

コメント

タイトルとURLをコピーしました