Home » Python » OpenPyXL » OpenPyXLでウィンドウ枠の固定位置を調べる

OpenPyXLでウィンドウ枠の固定位置を調べる

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

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

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

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

[スポンサードリンク]

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

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


import openpyxl

wb = openpyxl.load_workbook(r'C:\temp\foo.xlsx')
ws = wb.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>


最終更新日時:2019-10-10 12:41

[スポンサードリンク]

Home » Python » OpenPyXL » OpenPyXLでウィンドウ枠の固定位置を調べる

TrackBack:0

TrackBack URL

Home » Python » OpenPyXL » OpenPyXLでウィンドウ枠の固定位置を調べる

「OpenPyXL」の記事一覧

検索


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

.