Python Openpyxl未正确从创建的工作簿中删除工作表
因此,我遇到了openpxyl的Python Openpyxl未正确从创建的工作簿中删除工作表,python,openpyxl,Python,Openpyxl,因此,我遇到了openpxyl的remove_sheet()问题,我找不到答案。当我运行以下代码时: import openpyxl wb = openpyxl.Workbook() ws = wb.create_sheet("Sheet2") wb.get_sheet_names() ['Sheet','Sheet2'] wb.remove_sheet('Sheet') 我得到以下错误: ValueError: list.remove(x): x not in list 它不起
remove_sheet()
问题,我找不到答案。当我运行以下代码时:
import openpyxl
wb = openpyxl.Workbook()
ws = wb.create_sheet("Sheet2")
wb.get_sheet_names()
['Sheet','Sheet2']
wb.remove_sheet('Sheet')
我得到以下错误:
ValueError: list.remove(x): x not in list
它不起作用,即使我尝试wb.remove\u sheet(0)
或wb.remove\u sheet(1)
,我也会得到相同的错误。是否缺少某些内容?remove.sheet()
提供了一个sheet对象,而不是sheet的名称
所以你可以试试你的代码
wb.remove(wb.get_sheet_by_name(sheet))
同样,remove_sheet也不提供索引,因为它对实际的sheet对象进行操作
下面是一些示例(虽然这与您面临的问题不同,但它正好展示了如何正确调用remove_sheet方法) 如果您使用
按姓名获取工作表
,您将获得以下信息:
弃用警告
:调用弃用函数按名称获取工作表
(使用
wb[sheetname]
)
因此,解决办法是:
xlsx = Workbook()
xlsx.create_sheet('other name')
xlsx.remove(xlsx['Sheet'])
xlsx.save('some.xlsx')
自从这个问题被发布和回答后,Openpyxl库发生了变化 您不应该使用所指示的
wb.remove(wb.get\u sheet\u by\u name(sheet))
,因为它现在已贬值(尝试使用时会收到警告),而是在python 3.7中使用wb.remove(wb[sheet])
import openpyxl
wb = openpyxl.Workbook()
ws = wb.create_sheet("Sheet2")
n=wb.sheetnames
#sheetname =>get_sheet_names()
wb.remove(wb["Sheet"])
'#or can use'
wb.remove(wb[n[1]])
1是索引表“表”
你可以