我正在通过复制上次使用工作簿时处于活动状态的工作表来创建一个新工作表,并使用
workbook.copy_worksheet
来执行此操作。
创建工作表后,我使用 workbook.active 切换到新工作表,并将其设为活动工作表。不幸的是,之前处于活动状态的工作表并未停用,因此现在两个工作表同时处于活动状态。
我尝试了本页显示的其他方法,使用 openpyxl 设置活动工作表,所以请不要指着我那里,这些不是我的问题。
当我手动打开工作簿时,最后一个活动工作表和我创建的工作表都处于活动状态,就像在 Excel 中按住 Ctrl 键选择多个工作表时一样。
如何使用 openpyxl 停用另一个工作表,以便当用户在 Excel 中打开工作簿时,只有一个工作表处于活动状态?
一些测试代码:
def create_new_tab_in_workbook():
"""Create a new tab in TestWorkbook.xlsx"""
from openpyxl import load_workbook
workbookString = r'C:\TemporaryRemoveToday\WORKING\TestWorkbook.xlsx'
workbook = load_workbook(filename=workbookString)
newWorksheet = workbook.copy_worksheet(workbook.active)
newWorksheetTitle = workbook.active.title[5:] + '-' + str(int(workbook.active.title[5:]) + 54)
newWorksheet.title = newWorksheetTitle
workbook.active = newWorksheet
print(newWorksheet.title)
workbook.save(filename=workbookString)
create_new_tab_in_workbook()
在工作表视图上禁用“tabSelected”
def create_new_tab_in_workbook():
"""Create a new tab in TestWorkbook.xlsx"""
from openpyxl import load_workbook
# workbookString = r'C:\TemporaryRemoveToday\WORKING\TestWorkbook.xlsx'
workbook = load_workbook(filename=workbookString)
newWorksheet = workbook.copy_worksheet(workbook.active)
newWorksheetTitle = workbook.active.title[5:] + '-' + str(int(workbook.active.title[5:]) + 54)
newWorksheet.title = newWorksheetTitle
workbook[workbook.active.title].views.sheetView[0].tabSelected = False
workbook.active = newWorksheet
print(newWorksheet.title)
workbook.save(filename=workbookString)
create_new_tab_in_workbook()