worksheet.page【ページ設定】モジュール

メモ ( 概要 注意事項 ページ設定: ページ 余白 ヘッダー/フッター シート )
クラス: PageMargins【余白 (ページ設定)】 PrintOptions【印刷オプション】 PrintPageSetup【ページ設定】

メモ

概要

注意事項

ページ (ページ設定)

余白 (ページ設定)

[ページ設定]-[余白] ダイアログ

単位:[ファイル] - [オプション] - [詳細設定] - [表示] - [ルーラーの単位]

項目プロパティ
余白 (上) Worksheet.page_margins.

(PageMargins【余白 (ページ設定)】)
top【余白 (上)】
余白 (右)right【余白 (右)】
余白 (下)bottom【余白 (下)】
余白 (左)left【余白 (左)】
余白 (ヘッダー)header【余白 (ヘッダー)】
余白 (フッター) footer【余白 (フッター) 】
ページ中央 印刷 (水平) Worksheet.print_options.

(PrintOptions【印刷オプション】)
horizontalCentered【ページ中央 印刷 (水平)】
ページ中央 印刷 (垂直) verticalCentered【ページ中央 印刷 (垂直)】

ヘッダー/フッター (ページ設定)

シート (ページ設定)


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【余白 (ページ設定)】プロパティに生成済

プロパティ

プロパティ備考
bottomfloat余白 (下:インチ単位)
headerfloat余白 (ヘッダー:インチ単位)
leftfloat余白 (左:インチ単位)
rightfloat余白 (右:インチ単位)
tagnamestrタグ名 ('pageMargins')
topfloat余白 (上:インチ単位)

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【印刷オプション】プロパティに生成済

プロパティ

プロパティ備考
gridLinesbool 枠線印刷 (1/2)
※Office Open XML仕様:gridLinesSet【枠線印刷 (2/2)】と両方 True で枠線印刷有効
 Excel:このプロパティのみで判定 (詳細:注意事項)
gridLinesSetbool 枠線印刷 (2/2)
※Office Open XML仕様:gridLines【枠線印刷 (1/2)】と両方 True で枠線印刷有効
headingsbool行列番号 印刷
horizontalCenteredboolページ中央 印刷 (水平)
tagnamestrタグ名 ('printOptions')
verticalCenteredboolページ中央 印刷 (垂直)

操作

操作備考
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【ページ設定】プロパティに生成済

プロパティ

プロパティ備考
autoPageBreaksbool 自動改ページ
(Worksheet .sheet_properties.pageSetUpPr.autoPageBreaks のショートカット)
blackAndWhitebool白黒印刷
cellCommentsstr コメント印刷
備考
None(なし)
'asDisplayed'画面表示イメージ
'atEnd'シートの末尾
copiesint 印刷部数
draftbool簡易印刷
errorsstr セルのエラー印刷
備考
'displayed'表示する
'blank'<空白>
'dash'--
'NA'#N/A
firstPageNumberint先頭ページ番号 (参照:useFirstPageNumber【先頭ページ番号の使用有無】)
fitToHeightint縦ページ数 ([次のページ数に合わせて印刷] - 縦)
fitToPagebool ページ数 指定 ([次のページ数に合わせて印刷])
(Worksheet .sheet_properties.pageSetUpPr.fitToPage のショートカット)
fitToWidthint横ページ数 ([次のページ数に合わせて印刷] - 横)
horizontalDpiint 解像度 (水平方向:dpi 単位)
※プリンター依存
idRelation
orientationstr 印刷の向き (定数:ORIENTATION_~)
備考
'default'デフォルト
'portrait'
'landscape'
pageOrderstr ページの方向
備考
'downThenOver'左から右
'overThenDown'上から下
paperHeightstr 用紙の高さ (カスタム:単位付き)
単位:'mm' | 'cm' | 'in' | 'pt' | 'pc' | 'pi'
※プリンター依存
paperSizeint 用紙サイズ (既定用紙)
(定数:PAPERSIZE_~)
paperWidthstr 用紙の幅 (カスタム:単位付き)
単位:'mm' | 'cm' | 'in' | 'pt' | 'pc' | 'pi'
※プリンター依存
scaleint拡大/縮小 印刷 (%)
sheet_properties PageSetupProperties ワークシート プロパティ
(Worksheet .sheet_properties.pageSetUpPr のショートカット)
tagnamestrタグ名 ('pageSetup')
useFirstPageNumberbool 先頭ページ番号の使用有無 (参照:firstPageNumber【先頭ページ番号】)
usePrinterDefaultsboolプリンターデフォルト値の使用有無
verticalDpiint 解像度 (垂直方向: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)

ページ設定【シート】のサンプル画像