[英]How to set Excel PageBreak with xlwings in python?
需要幫助在 python 中使用xlwings package 設置PageBreak excel 文件。
根據微軟網站: https://learn.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)它應該返回-4135 ,這是xlPageBreakManual的 excel 常量。
您可以使用常量來設置分頁符的類型,例如sht.api.Rows(24).PageBreak = True行也可以寫為sht.api.Rows(24).PageBreak = -4135或sht.api。行 (24).PageBreak = PageBreak.xlPageBreakManual
可以使用語法從 xlwings 常量引用分頁符值 from xlwings.constants import PageBreak 。 下面顯示的示例在第 24 行設置分頁符,然后顯示前一行、實際行和后續行的狀態。 前一行和后續行的狀態為-4142 ,即沒有分頁符,而第 24行為 -4135 。
然后代碼使用xlPageBreakNone刪除分頁符,並且第 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) 會失敗,這是我所期望的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.