Как разделить экран Excel с помощью Openpyxl? - PullRequest
1 голос
/ 13 марта 2019

Я пытался использовать Openpyxl для разделения экрана Excel по вертикали (в Excel кнопка «Разделить» на вкладке «Вид» на ленте).Я не нашел никакого руководства, как это сделать.Но я нашел эту веб-страницу (https://openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.views.html) и думаю, что решением может быть свойство ySplit. К сожалению, я не смог выяснить, как правильно его использовать. Я попробовал следующий код:

wb = openpyxl.load_workbook('file.xlsx')
sh = wb.active
sh.sheet_view.pane.ySplit = 20

РЕДАКТИРОВАТЬ: Но этот код не работает: AttributeError: У объекта 'NoneType' нет атрибута 'ySplit'.

Я также пробовал некоторыеВарианты кода выше (с ySplit). Но безуспешно. Если кто-нибудь может помочь мне найти способ разделить экран, это будет очень цениться.

Заранее спасибо.

EDIT2: решение предоставлено stovfl в комментариях. Код должен быть:

sh.sheet_view.pane = openpyxl.worksheet.views.Pane(xSplit=20.0, ySplit=None, topLeftCell='C1', activePane='topLeft', state='split')

1 Ответ

0 голосов
/ 13 марта 2019

Вопрос Как разделить экран Excel с помощью Openpyxl?

Чтобы определить, чтобы показать разделенную таблицу, вы должны создать объект openpyxl.worksheet.views.Pane и присвоить ему myWorksheet.sheet_view.pane.

from openpyxl.worksheet.views import Pane

wb = openpyxl.load_workbook('file.xlsx')
ws = wb.active

ws.sheet_view.pane = Pane(xSplit=20.0, ySplit=None, 
                          topLeftCell='C1', activePane='topLeft', state='split')

wb.save('file.xlsx')

openPyXL - worksheet.views.Pane

class openpyxl.worksheet.views.Pane(xSplit=None, ySplit=None, 
                                    topLeftCell=None, 
                                    activePane='topLeft', state='split')[source]

activePane
Значение должно быть одним из {‘topLeft’, ‘bottomRight’, ‘topRight’, ‘bottomLeft’}

состояние
Значение должно быть одним из {‘split’, ‘frozen’, ‘frozenSplit’}

topLeftCell
Значения должны быть типа <class ‘str’>

xSplit
Значения должны быть типа <class ‘float’>

ySplit
Значения должны быть типа <class ‘float’>

...