【发布时间】:2017-02-14 02:01:30
【问题描述】:
我正在处理一张工作表,主要是删除除我需要的那张之外的所有工作表。我将遍历所有工作表,并删除对我的任务无用的工作表。
删除后,我尝试保存,但报错。
File "C:\Users\myUser\Anaconda3\lib\site-packages\openpyxl\workbook\workbook.py", line 130, in active
return self._sheets[self._active_sheet_index]
这是我的脚本
wb = load_workbook("File.xlsx")
ws1 = wb["Employee Info"]
ws1.freeze_panes = None
ws_active = wb.get_sheet_by_name("Employee Info")
### delete other sheets but Employee Info
for sheet in wb.worksheets:
if sheet.title != 'Employee Info':
print("removing " + sheet.title)
wb.remove_sheet(sheet)
print("remaining sheets:")
for sheet in wb.worksheets:
print(" " + sheet.title)
### TODO
### loop through the files in a directory
### TODO
### see if readable by ETL
print("saving the wb")
wb.save("modified.xlsx")
删除后,我检查了工作簿。它有我要找的工作表。只是不确定为什么它没有检测到剩余的 1 张。
要添加更多细节,excel文件有8张,我之后的那张在第5张。
【问题讨论】:
-
听起来像bitbucket.org/openpyxl/openpyxl/issues/748 请升级你的openpyxl版本。