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. 設定する内容と値
今回のエントリでは、先述の「図」以外の設定方法、設定値を記載します。
内容 | 値 |
---|---|
ページ数 |
|
日付 |
|
時刻 |
|
ファイルパス |
|
ファイル名 |
|
シート名 |
|
テーブルで示したそれぞれの値をpythonのコードのfooterに(文字列として)設定します。
それで、各値に対応した内容が、(サンプルコードの場合では)フッターに設定されます。
ヘッダーに設定するためには、コードの"sheet.oddFooter"を"sheet.oddHeader"を置き換えれば、それでOKです。
2. 設定できない内容
1. 設定する内容と値で記載しなかった「図」は、設定ができません。
いや。
正確にいうと、「設定が難しい」です。
というのは、xlsxファイルをzipにして解凍した結果得られるファイルを解析すると、設定した「図」に対して、実際の図の情報のIDが設定されます。
そのため、「図」を設定するためには、この「ID」に加えて、図に対応するファイルのパス、実際のファイルを設定する必要があります。
加えてIDに関しては「重複なく」設定する必要があります。
しかし、単に「oddFooter」や「oddHeader」に対して文字列を設定するだけでは、出来そうにありません。
そのため、今回のエントリでは省略をしています。
3. まとめ
今回のエントリでは、前回に引き続き、Excelのヘッダー/フッターに対してpythonからページ番号、ページ数などを設定してみました。
結果として、Excelから手動で設定する場合と同じ設定ができました。
これでまた1つ、pythonで自動化できる内容が増えたかと思います。
この記事の内容が、誰かの、何かの助けになれば幸いです。
ではっ!
ディスカッション
コメント一覧
まだ、コメントがありません