我的xlsx文件有5张, 我可以更改第四张纸的内容, 改变后, 我保存到一个新文件。
但是当我打开新文件时, 我需要手动选择第四张纸。
如何将默认工作表更改为第四张工作表?
谢谢!
更新
工作了! 非常感谢。 但还有一个小问题,
只需将
wb.active
设置为工作表的索引,例如。 wb.active = 3
第四张。
在仅设置 wb.active
并保存后手动打开文件时,我遇到了与 Kobe 相同的问题
对我来说,解决方法是除了设置活动工作表之外,还显式设置工作簿中每个工作表的
tabSelected
属性。这是一个最小的例子:
import openpyxl
workbook = openpyxl.load_workbook('your_file.xlsx')
workbook.active = 2 # making the third sheet active
for sheet in workbook:
if sheet.title == 'your_sheet_name':
sheet.sheet_view.tabSelected = True
else:
sheet.sheet_view.tabSelected = False
workbook.save('your_file.xlsx')
手动打开文件后,仅选择一张纸。
我正在使用一个使用 openpyxl 填充的模板。问题是
wb.active = wb["Deckblatt"]
导致我保存模板的工作表周围出现伪影(此处为“Pro FW Δ”)(openpyxl 3.0.10):
因此我创建了一个辅助函数,可以设置没有工件的活动工作表:
def make_sheet_active(wb: openpyxl.workbook.workbook.Workbook, main_sheet_name: str):
wb.active = wb[main_sheet_name]
for ws in wb:
ws.views.sheetView[0].tabSelected = ws.title == main_sheet_name