worksheet.page【ページ設定】モジュール
メモ ( 概要 注意事項 ページ設定: ページ 余白 ヘッダー/フッター シート ) 例
クラス: PageMargins【余白 (ページ設定)】 PrintOptions【印刷オプション】 PrintPageSetup【ページ設定】
メモ
概要
- Worksheet【ワークシート】のページ設定に関連するモジュール
- Excelの [ページレイアウト]タブ - [ページ設定] に対応
- Excelの [ページレイアウト]タブ - [ページ設定] に対応
- モジュール内定義
- 関連モジュール
注意事項
- 枠線印刷
- Office Open XML の仕様では下記プロパティの両方が True の場合のみ枠線印刷が有効、Excel は上のプロパティのみで判定
・gridLines【枠線 印刷 (1/2)】
・gridLinesSet【枠線 印刷 (2/2)】
※両方を指定するのが無難 (Google スプレッドシート:仕様通り) - 簡易印刷はオフ設定 ( Officeのサポート:ワークシートの枠線を印刷する)
- Office Open XML の仕様では下記プロパティの両方が True の場合のみ枠線印刷が有効、Excel は上のプロパティのみで判定
ページ (ページ設定)
〔 例 〕項目 | プロパティ | |
---|---|---|
デフォルト値の使用 | Worksheet.page_setup. (PrintPageSetup【ページ設定】) | usePrinterDefaults【プリンターデフォルト値の使用有無】 |
印刷の向き | orientation【印刷の向き】 (定数:ORIENTATION_~) ( Worksheet.set_printer_settings【プリンター設定】 でも可) | |
拡大/縮小 印刷 (%) | (fitToPage【ページ数 指定】= False) scale【拡大/縮小 印刷 (%)】 | |
次のページ数に合わせて印刷 | fitToPage【ページ数 指定】= True fitToWidth【横ページ数】 fitToHeight【縦ページ数】 | |
用紙サイズ (※プリンター依存) | paperSize【用紙サイズ (既定用紙)】 (定数:PAPERSIZE_~) ( Worksheet.set_printer_settings【プリンター設定】 でも可) paperHeight【用紙の高さ (カスタム:単位付き)】 paperWidth【用紙の幅 (カスタム:単位付き)】 | |
印刷品質 (※プリンター依存) | horizontalDpi【解像度 (水平方向:dpi 単位)】 verticalDpi【解像度 (垂直方向:dpi 単位)】 | |
先頭ページ番号 | useFirstPageNumber【先頭ページ番号の使用】= True firstPageNumber【先頭ページ番号】 |
余白 (ページ設定)
〔 例 〕単位:[ファイル] - [オプション] - [詳細設定] - [表示] - [ルーラーの単位]
項目 | プロパティ | |
---|---|---|
余白 (上) | Worksheet.page_margins. (PageMargins【余白 (ページ設定)】) | top【余白 (上)】 |
余白 (右) | right【余白 (右)】 | |
余白 (下) | bottom【余白 (下)】 | |
余白 (左) | left【余白 (左)】 | |
余白 (ヘッダー) | header【余白 (ヘッダー)】 | |
余白 (フッター) | footer【余白 (フッター) 】 | |
ページ中央 印刷 (水平) | Worksheet.print_options. (PrintOptions【印刷オプション】) | horizontalCentered【ページ中央 印刷 (水平)】 |
ページ中央 印刷 (垂直) | verticalCentered【ページ中央 印刷 (垂直)】 |
ヘッダー/フッター (ページ設定)
シート (ページ設定)
〔 例 〕項目 | プロパティ | |
---|---|---|
印刷範囲 | Worksheet . | print_area【印刷範囲】 |
印刷タイトル行 | print_title_rows【印刷タイトル行】 | |
印刷タイトル列 | print_title_cols【印刷タイトル列】 | |
枠線 | Worksheet .print_options. (PrintOptions【印刷オプション】) | gridLines【枠線 印刷 (1/2)】 gridLinesSet【枠線 印刷 (2/2)】 |
行列番号 | headings【行列番号 印刷】 | |
白黒印刷 | Worksheet .page_setup. (PrintPageSetup【ページ設定】) | blackAndWhite【白黒印刷】 |
簡易印刷 | draft【簡易印刷】 | |
コメント印刷 | cellComments【コメント印刷】 | |
セルのエラー印刷 | errors【セルのエラー印刷】 | |
ページの方向 | pageOrder【ページの方向】 |
外部リンク
- openpyxl (英語)
- ECMA-376:Office Open XML file formats (英語)
SpreadsheetML:- pageMargins (Page Margins)
- pageSetup (Page Setup Settings)
- printOptions (Print Options)
PageMargins【余白 (ページ設定)】クラス
クラス定義
クラス | 備考 |
---|---|
親:openpyxl.descriptors.serialisable.Serialisable | |
class PageMargins( left=0.75, right=0.75, top=1, bottom=1, header=0.5, footer=0.5) | 余白 (ページ設定) left (float)余白 (左:インチ単位) right (float)余白 (右:インチ単位) top (float)余白 (上:インチ単位) bottom (float)余白 (下:インチ単位) header (float)余白 (ヘッダー:インチ単位) footer (float)余白 (フッター:インチ単位) ※ 初期状態で、Worksheet【ワークシート】 の page_margins【余白 (ページ設定)】プロパティに生成済 |
プロパティ
プロパティ | 型 | 備考 |
---|---|---|
bottom | float | 余白 (下:インチ単位) |
footer | float | 余白 (フッター:インチ単位) |
header | float | 余白 (ヘッダー:インチ単位) |
left | float | 余白 (左:インチ単位) |
right | float | 余白 (右:インチ単位) |
tagname | str | タグ名 ('pageMargins') |
top | float | 余白 (上:インチ単位) |
PrintOptions【印刷オプション】クラス
クラス定義
クラス | 備考 |
---|---|
親:openpyxl.descriptors.serialisable.Serialisable | |
class PrintOptions( horizontalCentered=None, verticalCentered=None, headings=None, gridLines=None, gridLinesSet=None) | 印刷オプション horizontalCentered (bool)ページ中央 印刷 (水平) verticalCentered (bool)ページ中央 印刷 (垂直) headings (bool)行列番号 印刷 gridLines (bool)枠線印刷 (1/2) gridLinesSet (bool)枠線印刷 (2/2) ※ 初期状態で、Worksheet【ワークシート】 の print_options【印刷オプション】プロパティに生成済 |
プロパティ
プロパティ | 型 | 備考 |
---|---|---|
gridLines | bool | 枠線印刷 (1/2) ※Office Open XML仕様:gridLinesSet【枠線印刷 (2/2)】と両方 True で枠線印刷有効 Excel:このプロパティのみで判定 (詳細:注意事項) |
gridLinesSet | bool | 枠線印刷 (2/2) ※Office Open XML仕様:gridLines【枠線印刷 (1/2)】と両方 True で枠線印刷有効 |
headings | bool | 行列番号 印刷 |
horizontalCentered | bool | ページ中央 印刷 (水平) |
tagname | str | タグ名 ('printOptions') |
verticalCentered | bool | ページ中央 印刷 (垂直) |
操作
操作 | 備考 |
---|---|
bool( PrintOptions ) | プロパティの設定有無判定 |
PrintPageSetup【ページ設定】クラス
クラス定義
クラス | 備考 |
---|---|
親:openpyxl.descriptors.serialisable.Serialisable | |
class PrintPageSetup( worksheet=None, orientation=None, paperSize=None, scale=None, fitToHeight=None, fitToWidth=None, firstPageNumber=None, useFirstPageNumber=None, paperHeight=None, paperWidth=None, pageOrder=None, usePrinterDefaults=None, blackAndWhite=None, draft=None, cellComments=None, errors=None, horizontalDpi=None, verticalDpi=None, copies=None, id=None) | ページ設定 worksheet (Worksheet)ワークシート orientation (str)印刷の向き paperSize (int)用紙サイズ (既定用紙) scale (int)拡大/縮小 印刷 (%) fitToHeight (int)縦ページ数 fitToWidth (int)横ページ数 firstPageNumber (int)先頭ページ番号 useFirstPageNumber (bool)先頭ページ番号の使用 paperHeight (str)用紙の高さ (カスタム:単位付き) paperWidth (str)用紙の幅 (カスタム:単位付き) pageOrder (str)ページの方向 usePrinterDefaults (bool)プリンターデフォルト値の使用有無 blackAndWhite (bool)白黒印刷 draft (bool)簡易印刷 cellComments (str)コメント印刷 errors (bool)セルのエラー印刷 horizontalDpi (int)解像度 (水平方向:dpi 単位) verticalDpi (int)解像度 (垂直方向:dpi 単位) copies (int)印刷部数 id ※ 初期状態で、Worksheet【ワークシート】 の page_setup【ページ設定】プロパティに生成済 |
プロパティ
プロパティ | 型 | 備考 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
autoPageBreaks | bool | 自動改ページ (Worksheet .sheet_properties.pageSetUpPr.autoPageBreaks のショートカット) | ||||||||||
blackAndWhite | bool | 白黒印刷 | ||||||||||
cellComments | str | コメント印刷
| ||||||||||
copies | int | 印刷部数 | ||||||||||
draft | bool | 簡易印刷 | ||||||||||
errors | str | セルのエラー印刷
| ||||||||||
firstPageNumber | int | 先頭ページ番号 (参照:useFirstPageNumber【先頭ページ番号の使用有無】) | ||||||||||
fitToHeight | int | 縦ページ数 ([次のページ数に合わせて印刷] - 縦) | ||||||||||
fitToPage | bool | ページ数 指定 ([次のページ数に合わせて印刷]) (Worksheet .sheet_properties.pageSetUpPr.fitToPage のショートカット) | ||||||||||
fitToWidth | int | 横ページ数 ([次のページ数に合わせて印刷] - 横) | ||||||||||
horizontalDpi | int | 解像度 (水平方向:dpi 単位) ※プリンター依存 | ||||||||||
id | Relation | |||||||||||
orientation | str | 印刷の向き (定数:ORIENTATION_~)
| ||||||||||
pageOrder | str | ページの方向
| ||||||||||
paperHeight | str | 用紙の高さ (カスタム:単位付き) 単位:'mm' | 'cm' | 'in' | 'pt' | 'pc' | 'pi' ※プリンター依存 | ||||||||||
paperSize | int | 用紙サイズ (既定用紙) (定数:PAPERSIZE_~) | ||||||||||
paperWidth | str | 用紙の幅 (カスタム:単位付き) 単位:'mm' | 'cm' | 'in' | 'pt' | 'pc' | 'pi' ※プリンター依存 | ||||||||||
scale | int | 拡大/縮小 印刷 (%) | ||||||||||
sheet_properties | PageSetupProperties | ワークシート プロパティ (Worksheet .sheet_properties.pageSetUpPr のショートカット) | ||||||||||
tagname | str | タグ名 ('pageSetup') | ||||||||||
useFirstPageNumber | bool | 先頭ページ番号の使用有無 (参照:firstPageNumber【先頭ページ番号】) | ||||||||||
usePrinterDefaults | bool | プリンターデフォルト値の使用有無 | ||||||||||
verticalDpi | int | 解像度 (垂直方向:dpi 単位) ※プリンター依存 |
操作
操作 | 備考 |
---|---|
bool( PrintPageSetup ) | プロパティの設定有無判定 |
メソッド
メソッド | 備考 |
---|---|
@classmethod from_tree( node) | node |
例
ページ (ページ設定)
from openpyxl import Workbook
from openpyxl.worksheet.worksheet import Worksheet
# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws = wb.active
ws['B2'] = 'ページ設定'
# 印刷の向き
ws.page_setup.orientation = Worksheet.ORIENTATION_LANDSCAPE
# 拡大/縮小 印刷 (%)
ws.page_setup.scale = 123 # 値のみ
# 次のページ数に合わせて印刷
ws.page_setup.fitToPage = True
ws.page_setup.fitToWidth = 2
ws.page_setup.fitToHeight = 3
# 用紙サイズ
ws.page_setup.paperSize = Worksheet.PAPERSIZE_A3
# 印刷品質
ws.page_setup.horizontalDpi = 1200
ws.page_setup.verticalDpi = 1200
# 先頭ページ番号
ws.page_setup.useFirstPageNumber = True
ws.page_setup.firstPageNumber = 4
# 参考:用紙サイズ・印刷の向き
#ws.set_printer_settings(
# Worksheet.PAPERSIZE_A3,
# Worksheet.ORIENTATION_LANDSCAPE
#)
# ワークブック保存
wb.save(WORKBOOK)
余白 (ページ設定)
from openpyxl import Workbook
from openpyxl.worksheet.worksheet import Worksheet
# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws = wb.active
CM = 1 / 2.54
# 用紙サイズ・印刷の向き
ws.set_printer_settings(
Worksheet.PAPERSIZE_A4,
Worksheet.ORIENTATION_PORTRAIT
)
# 余白
ws.page_margins.top = 3 * CM
ws.page_margins.right = 4 * CM
ws.page_margins.bottom = 5 * CM
ws.page_margins.left = 6 * CM
# 余白 (ヘッダー・フッター)
ws.page_margins.header = 1 * CM
ws.page_margins.footer = 2 * CM
# ページ中央 印刷
ws.print_options.horizontalCentered = True
ws.print_options.verticalCentered = True
# ワークブック保存
wb.save(WORKBOOK)
シート (ページ設定)
from openpyxl import Workbook
from openpyxl.worksheet.worksheet import Worksheet
from openpyxl.comments import Comment
from openpyxl.utils import get_column_letter
# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws = wb.active
# タイトル
for i in range(2, 10):
letter = get_column_letter(i)
ws[f'{letter}1'] = f'TITLE {letter}'
for i in range(2, 61):
ws[f'A{i}'] = f'TITLE {i}'
# データ
ws['C3'] = 'C-3'
ws['C3'].comment = Comment('コメント', 'AUTHOR')
ws['C4'] = '=1/0'
# 用紙サイズ・印刷の向き
ws.set_printer_settings(
Worksheet.PAPERSIZE_A5,
Worksheet.ORIENTATION_PORTRAIT
)
# 次のページ数に合わせて印刷
ws.page_setup.fitToPage = True
ws.page_setup.fitToWidth = 2
ws.page_setup.fitToHeight = 2
# 印刷範囲
ws['I60'] = 'I-60'
ws.print_area = 'A1:I60'
# 印刷タイトル行
ws.print_title_rows = '1:1'
# 印刷タイトル列
ws.print_title_cols = 'A:A'
# 枠線
ws.print_options.gridLines = True
ws.print_options.gridLinesSet = True
# 行列番号
ws.print_options.headings = True
# 白黒印刷
ws.page_setup.blackAndWhite = True
# 簡易印刷
ws.page_setup.draft = False
# コメント印刷
ws.page_setup.cellComments = 'atEnd'
# セルのエラー印刷
ws.page_setup.errors = 'dash'
# ページの方向
ws.page_setup.pageOrder = 'overThenDown'
# ビュー設定
ws.sheet_view.view = 'pageLayout'
ws.sheet_view.zoomScalePageLayoutView = 50
ws.sheet_view.zoomScale = 50
# ワークブック保存
wb.save(WORKBOOK)