如何在 python 中使用 xlwings 设置 Excel PageBreak?

How to set Excel PageBreak with xlwings in python?

需要帮助设置 PageBreak excel 文件 xlwings 包 python.
根据微软网站:https://docs.microsoft.com/zh-tw/office/vba/api/excel.range.pagebreak

我试过了

app = xw.App(visible=True, add_book=False)
wb = app.books.open("raw_data/" + raw_file_name, update_links=False)
sht = wb.sheets['sheet1']
sht.api.Rows(24).PageBreak = 'xlPageBreakManual' # I would like to set on row 24

程序永远停滞不前。有谁知道如何解决这个问题?
谢谢

xlwings 不知道 xlPageBreakManual 是什么,除非它被引用。然而,在这种情况下,这是没有必要的。默认是添加一个手动分页符,因此语法是唯一的; sht.api.Rows(24).PageBreak = True。如果您随后检查第 24 行的 PageBreak 状态; print(sht.api.Rows(24).PageBreak) 它应该 return -4135 这是 excel xlPageBreakManual.

的常量

您可以使用常量来设置分页符的类型,例如sht.api.Rows(24).PageBreak = True 行也可以写成 sht.api.Rows(24).PageBreak = -4135sht.api.Rows(24).PageBreak = PageBreak.xlPageBreakManual

可以使用语法 from xlwings.constants import PageBreak 从 xlwings 常量中引用分页值。下面显示的示例在第 24 行设置分页符,然后显示前一行、实际行和后续行的状态。前一行和后续行的状态为 -4142,即没有分页符,而第 24 行为 -4135.

代码然后使用 xlPageBreakNone 删除分页符,并且 3 行 23-25 再次都是 -4142

对于这个测试,我使用了 xlwings v0.26.1

import xlwings as xw
from xlwings.constants import PageBreak

### Constant values for reference
# xlPageBreakAutomatic = -4105
# xlPageBreakManual = -4135
# xlPageBreakNone = -4142

app = xw.App(visible=True, add_book=False)
sht = xw.Book("book.xlsx").sheets['Sheet1']

print("Add Page break at row 24")
sht.api.Rows(24).PageBreak = True
# sht.api.Rows(24).PageBreak = -4135  # This does the same as the line above 
# sht.api.Rows(24).PageBreak = PageBreak.xlPageBreakManual # As does this line
print('Row23: ' + str(sht.api.Rows(23).PageBreak))
print('Row24: ' + str(sht.api.Rows(24).PageBreak))
print('Row25: ' + str(sht.api.Rows(25).PageBreak))

print("\nDelete Page break at row 24")
sht.api.Rows(24).PageBreak = PageBreak.xlPageBreakNone
print('Row23: ' + str(sht.api.Rows(23).PageBreak))
print('Row24: ' + str(sht.api.Rows(24).PageBreak))
print('Row25: ' + str(sht.api.Rows(25).PageBreak))

请注意,尝试手动将分页符设置为 -4105 (xlPageBreakAutomatic) 会失败,这符合我的预期。