5
3

openpyxlをうす〜く理解しよう~その3/3(印刷設定編)

Last updated at Posted at 2024-04-26

今回の目的

ズバリ、印刷設定。である。それ以外はない。w

前記事はこちら




印刷範囲を設定する

worksheet.print_area = 'A1:C4'

'A1:C4'って直接書いたけど、こんな感じで作っちゃえばいいね。

startcol = get_column_letter(worksheet.min_column)
endcol = get_column_letter(worksheet.max_column)

area_str = startcol + '1:' + endcol + str(worksheet.max_row)

出来上がりはこんな感じ。
スクリーンショット 2024-04-25 23.41.04.png



上下位置をセンターにする

worksheet.print_options.verticalCentered = True

出来上がり
スクリーンショット 2024-04-25 23.42.16.png
ふむふむ。
(正直いうと、公式hp見て、試して、出来上がりを見ているだけだったりする。w)



左右位置をセンターにする

worksheet.print_options.verticalCentered = True

スクリーンショット 2024-04-25 23.50.23.png

ちなみに、VSCodeを使っているのですが、以下までコードを書くと何やら設定可能な値が見える
スクリーンショット 2024-04-25 23.47.26.png
ま、色々設定できそうですね。



表のタイトルをつける

そう、印刷のマイページごとに表示してほしい、列を入れた行を指定するんです。

worksheet.print_title_rows = '1:1'

こんな感じ。

今のエクセルの例だと変わらないので結果はなし!w

worksheet.print_title_rows = '1:2'

1、2行めを指定したい場合は下記。別のファイルで試した。(あ、表に出せないファイルなんでご勘弁)



印刷用紙の方向の設定

orientationには「向き」の意味があります。
そのorienttationに設定を入れていきます。

# 横向き
worksheet.page_setup.orientation = worksheet.ORIENTATION_LANDSCAPE

スクリーンショット 2024-04-26 12.28.41.png

# 縦向き
worksheet.page_setup.orientation = worksheet.ORIENTATION_PORTRAIT

スクリーンショット 2024-04-26 12.30.59.png

無言で進みます。w



印刷用紙の設定

B5に設定する場合

worksheet.page_setup.paperSize = worksheet.PAPERSIZE_A5

スクリーンショット 2024-04-26 12.36.11.png
ちゃんと、プリントプレビューを見るとA5になりました。

スクリーンショット 2024-04-26 12.40.41.png
色々設定ができそうですね。




終わりに

いきなり終わります。w
だって、うす〜く理解するだけですから。
なんとなく、openpyxlがわかってきました。次は実践して楽しましょ。
csvやエクセルを読み込んで、pandasで処理してエクセルに書き込んで体裁整えてホイっ!
同じような作業があったら、どんどん作業はパソコンに任せちゃいましょう!

最近はエンタープライズ契約のMicrosoft365にはscriptができて、JavaSriptでも動かせるようになりました。
慣れているのはJavaSriptか、pythonか。強力なpandasが使えるのはpython。
どっち使うかはあなた次第!

5
3
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
5
3