worksheet.pagebreak【改ページ】モジュール
メモ ( 概要 基本 改ページの挿入 改ページの解除 ) 例
クラス: Break【改ページ】 ColBreak【改ページ リスト (列)】 PageBreak【改ページ リスト (行)】 RowBreak【改ページ リスト (行)】
メモ
概要
- 改ページに関連するモジュール
- Excelの [ページレイアウト]タブ - [ページ設定] - [改ページ] に対応
- モジュール内定義
- 関連モジュール
基本
- 行/列の改ページ位置は、Break【改ページ】を生成
- ワークシートの改ページ位置は、下記で管理
- 行:Worksheet .row_breaks【改ページ リスト (行)】
- 列:Worksheet .col_breaks【改ページ リスト (列)】
- ※Worksheet .page_breaks【改ページ リスト】 は、削除予定 3.0 の為、非推奨
改ページの挿入
〔 例 〕- 個別挿入
- Break【改ページ】を生成
- 上記を挿入
行:Worksheet .row_breaks【改ページ リスト (行)】 で append【改ページ 追加】
列:Worksheet .col_breaks【改ページ リスト (列)】 で append【改ページ 追加】
- 一括挿入
- 要素が Break【改ページ】 の list【リスト】 または tuple【タプル】を生成
- 下記を上書き
行:Worksheet .row_breaks【改ページ リスト (行)】 の brk【改ページ リスト】プロパティ
列:Worksheet .col_breaks【改ページ リスト (列)】 の brk【改ページ リスト】プロパティ
改ページの解除
〔 例 〕- 個別解除
- 改ページ リストが tuple【タプル】の場合 (tuple【タプル】で一括挿入し、その後個別挿入なし)、 list【リスト】に変換
- 改ページ リストから id【改ページ位置】が削除対象となる要素 (Break【改ページ】) を削除
- すべて解除
- 空の list【リスト】 または tuple【タプル】を下記に上書き
行:Worksheet .row_breaks【改ページ リスト (行)】 の brk【改ページ リスト】プロパティ
列:Worksheet .col_breaks【改ページ リスト (列)】 の brk【改ページ リスト】プロパティ
- 空の list【リスト】 または tuple【タプル】を下記に上書き
外部リンク
- openpyxl (英語)
- ECMA-376:Office Open XML file formats (英語)
SpreadsheetML:- brk (Break)
- colBreaks (Vertical Page Breaks)
- rowBreaks (Horizontal Page Breaks (Row))
Break【改ページ】クラス
クラス定義
クラス | 備考 |
---|---|
親:openpyxl.descriptors.serialisable.Serialisable インポート:from openpyxl.worksheet.pagebreak import Break | |
class Break( id=0, min=0, max=16383, man=True, pt=None) | 改ページ id (int:0~)改ページ位置 min (int:0~)開始 行/列インデックス max (int:0~)最終 行/列インデックス man (bool)手動改ページの有無 pt (bool)ピボットテーブルの改ページ作成の有無 |
プロパティ
プロパティ | 型 | 備考 |
---|---|---|
id | int (0~) | 改ページ位置 (ゼロベース:指定位置の上/左で改ページ) ※前のページの 行/列 番号 |
man | bool | 手動改ページの有無 |
max | int (0~) | 最終 行/列インデックス (ゼロベース) |
min | int (0~) | 開始 行/列インデックス (ゼロベース) |
pt | bool | ピボットテーブルの改ページ作成の有無 (Pivot-Created Page Break) |
tagname | str | タグ名 ('brk') |
ColBreak【改ページ リスト (列)】クラス
クラス定義
クラス | 備考 |
---|---|
親:RowBreak インポート:from openpyxl.worksheet.pagebreak import ColBreak | |
class ColBreak( count=None, manualBreakCount=None, brk=() ) | 改ページ リスト (列) count manualBreakCount brk (list | tuple)改ページ リスト ※ 初期状態で、Worksheet【ワークシート】 の col_breaks【改ページ リスト (列)】プロパティに生成済 |
プロパティ
操作
操作 | 備考 |
---|---|
bool( RowBreak ) | 改ページの存在有無 |
len( RowBreak ) | 改ページ数 |
メソッド
メソッド | 備考 |
---|---|
append( brk=None) | 改ページ 追加 brk (Break | None)改ページ None:改ページ数 + 1 の id ※ tuple【タプル型】で一括挿入でも list【リスト型】に変換 |
RowBreak・PageBreak【改ページ リスト (行)】クラス
クラス定義
クラス | 備考 |
---|---|
親:openpyxl.descriptors.serialisable.Serialisable インポート:from openpyxl.worksheet.pagebreak import RowBreak/PageBreak | |
class RowBreak( count=None, manualBreakCount=None, brk=() ) ※ 別名:PageBreak | 改ページ リスト (行) count manualBreakCount brk改ページ リスト ※ 初期状態で、Worksheet【ワークシート】 の row_breaks【改ページ リスト (行)】プロパティに生成済 |
プロパティ
操作
操作 | 備考 |
---|---|
bool( RowBreak ) | 改ページの存在有無 |
len( RowBreak ) | 改ページ数 |
メソッド
メソッド | 備考 |
---|---|
append( brk=None) | 改ページ 追加 brk (Break | None)改ページ None:改ページ数 + 1 の id ※ tuple【タプル型】で一括挿入でも list【リスト型】に変換 |
例
改ページの挿入
from openpyxl import Workbook
from openpyxl.worksheet.worksheet import Worksheet
from openpyxl.worksheet.pagebreak import Break
# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws = wb.active
ws['L30'] = 'Data'
ws.print_area = 'A1:L30'
# 用紙設定
ws.set_printer_settings(
Worksheet.PAPERSIZE_A3,
Worksheet.ORIENTATION_LANDSCAPE,
)
# 改ページ (行) 個別指定
row_break = Break(5)
ws.row_breaks.append(row_break)
row_break = Break(15)
ws.row_breaks.append(row_break)
print(ws.row_breaks)
# 出力:
# <openpyxl.worksheet.pagebreak.RowBreak object>
# Parameters:
# count=2, manualBreakCount=2, brk=[<openpyxl.worksheet.pagebreak.Break object>
# Parameters:
# id=5, min=0, max=16383, man=True, pt=None, <openpyxl.worksheet.pagebreak.Break object>
# Parameters:
# id=15, min=0, max=16383, man=True, pt=None]
# 改ページ (列) 一括指定
ws.col_breaks.brk = [Break(3), Break(9)]
print(ws.col_breaks)
# 出力:
# <openpyxl.worksheet.pagebreak.ColBreak object>
# Parameters:
# count=2, manualBreakCount=2, brk=[<openpyxl.worksheet.pagebreak.Break object>
# Parameters:
# id=3, min=0, max=16383, man=True, pt=None, <openpyxl.worksheet.pagebreak.Break object>
# Parameters:
# id=9, min=0, max=16383, man=True, pt=None]
# ビュー設定
ws.sheet_view.view = 'pageBreakPreview'
ws.sheet_view.zoomScaleSheetLayoutView = 75
ws.sheet_view.zoomScale = 75
# ワークブック保存
wb.save(WORKBOOK)
改ページの解除
from openpyxl import Workbook
from openpyxl.worksheet.worksheet import Worksheet
from openpyxl.worksheet.pagebreak import Break
# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws = wb.active
ws['L40'] = 'Data'
ws.print_area = 'A1:L40'
# 用紙設定
ws.set_printer_settings(
Worksheet.PAPERSIZE_A3,
Worksheet.ORIENTATION_PORTRAIT,
)
# 改ページ (行)
ws.row_breaks.brk = [Break(i) for i in range(5, 41, 5)]
print(ws.row_breaks.count, bool(ws.row_breaks), len(ws.row_breaks))
# 出力:8 True 8
# 改ページ (行) 個別解除
ws['B10'] = '改ページ 解除'
del_break = 10
for row_break in ws.row_breaks.brk:
if row_break.id == del_break:
ws.row_breaks.brk.remove(row_break)
break;
print(ws.row_breaks.count, bool(ws.row_breaks), len(ws.row_breaks))
# 出力:7 True 7
# 改ページ (列)
ws.col_breaks.brk = [Break(i) for i in range(3, 13, 3)]
print(ws.col_breaks.count, bool(ws.col_breaks), len(ws.col_breaks))
# 出力:4 True 4
# 改ページ (列) すべて解除
ws.col_breaks.brk = []
print(ws.col_breaks.count, bool(ws.col_breaks), len(ws.col_breaks))
# 出力:0 False 0
# ビュー設定
ws.sheet_view.view = 'pageBreakPreview'
ws.sheet_view.zoomScaleSheetLayoutView = 75
ws.sheet_view.zoomScale = 75
# ワークブック保存
wb.save(WORKBOOK)