Home » Python » OpenPyXLの使い方 » OpenPyXLでウィンドウ枠の固定位置を調べる-Worksheet.freeze_panes属性

OpenPyXLでウィンドウ枠の固定位置を調べる-Worksheet.freeze_panes属性

動作検証バージョン:Windows 10 + Python 3.7.3 + OpenPyXL 2.6.2

Excel VBAの場合、ウィンドウ枠の固定に関連するプロパティは、WorksheetオブジェクトではなくWindowオブジェクトに用意されています。

そのため、ウィンドウ枠が固定されている位置をSplitRowプロパティ・SplitColumnプロパティで取得したときに、そのままでは本当の固定位置ではないセル番地が返される可能性があることをご紹介しました。

OpenPyXLの場合が気になり試してみました。

[スポンサードリンク]

ウィンドウ枠の固定位置を調べるスクリプト

以下のスクリプトを実行すれば、Cドライブtempフォルダーのfoo.xlsxブックの先頭シートの、ウィンドウ枠固定位置が出力されます。

import openpyxl

bk = openpyxl.load_workbook(r'C:\temp\foo.xlsx')
ws = bk.worksheets[0]
print(ws.freeze_panes)

ウィンドウ枠の固定や解除を行う、Worksheetオブジェクトのfeeze_panes属性で、ウィンドウ枠の固定位置も取得できます。

Excel VBAではダメだったZ1000セルを選択した状態でウィンドウ枠の固定を行った場合でも、OpenPyXLのWorksheet.freeze_panes属性なら大丈夫です。

SpreadsheetMLのノード

ちなみに、B2セルを選択した状態でウィンドウ枠の固定を行ったSpreadsheetMLの中身を確認すると、「/xl/worksheets/sheet1.xml」に以下のようなノードがあります。

<sheetViews>
 <sheetView tabSelected="1" workbookViewId="0">
  <pane
    xSplit="1" ySplit="1"
    topLeftCell="B2"
    activePane="bottomRight"
    state="frozen"/>
    ...
 </sheetView>
</sheetViews>
<sheetData>
...
</sheetData>

最終更新日時:2023-01-18 05:25

[スポンサードリンク]

Home » Python » OpenPyXLの使い方 » OpenPyXLでウィンドウ枠の固定位置を調べる-Worksheet.freeze_panes属性

「OpenPyXLの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.