OfficeをPythonで(7)
Excelのフッターにページ番号(とか)を設定してみた…の続き

どもです。

前回のエントリで、pythonからExcelのフッターに「ページ番号」を挿入してみました。
「ページ番号」は、フッターオブジェクトに対して以下のような値(文字列)を設定することで、pythonから設定可能です。

&p

サンプルコードは、以下の通りです。

dpath = r'/path/to/target/xlsx/file.xlsx'
footer = 'sample_demo_file-&P'
wb = openpyxl.load_workbook(path)

sheets = wb.worksheets
for sheet in sheets:
	footer_part = sheet.oddFooter.center
	footer_part.text = footer

wb.save(path)
wb.close()

Excelのフッターに設定可能な項目は、「ページ番号」だけではありません。
「ページ数」「日付」「時刻」「ファイルパス」「ファイル名」「シート名」「図」も指定可能です。

今回のエントリでは、これらの内容を設定してみます。

1. 設定する内容と値

今回のエントリでは、先述の「図」以外の設定方法、設定値を記載します。

設定内容と設定する値

内容
ページ数
&N
日付
&D
時刻
&T
ファイルパス
&Z&F
ファイル名
&F
シート名
&A

テーブルで示したそれぞれの値をpythonのコードのfooterに(文字列として)設定します。
それで、各値に対応した内容が、(サンプルコードの場合では)フッターに設定されます。
ヘッダーに設定するためには、コードの"sheet.oddFooter"を"sheet.oddHeader"を置き換えれば、それでOKです。

2. 設定できない内容

1. 設定する内容と値で記載しなかった「図」は、設定ができません。
いや。
正確にいうと、「設定が難しい」です。
というのは、xlsxファイルをzipにして解凍した結果得られるファイルを解析すると、設定した「図」に対して、実際の図の情報のIDが設定されます。
そのため、「図」を設定するためには、この「ID」に加えて、図に対応するファイルのパス、実際のファイルを設定する必要があります。
加えてIDに関しては「重複なく」設定する必要があります。
しかし、単に「oddFooter」や「oddHeader」に対して文字列を設定するだけでは、出来そうにありません。
そのため、今回のエントリでは省略をしています。

3. まとめ

今回のエントリでは、前回に引き続き、Excelのヘッダー/フッターに対してpythonからページ番号、ページ数などを設定してみました。
結果として、Excelから手動で設定する場合と同じ設定ができました。
これでまた1つ、pythonで自動化できる内容が増えたかと思います。

この記事の内容が、誰かの、何かの助けになれば幸いです。

ではっ!