我曾尝试使用xlsxwriter.add_worksheet()创建新工作表,但它更改了我的旧工作表。任何可以创建新工作表而不影响其他工作表的库以及如何删除.xls文件中的工作表因为我没有在xlrd或xlsxwriter中找到可以删除工作表的任何函数。
编辑:1尝试使用win32模块。能够删除工作表但无法创建新工作表而不影响现有工作表。
答案 0 :(得分:1)
更新:找到答案
制作新表:
import xlrd
xl_ref = xlrd.open_workbook('Path to file')
此处类型(xl_ref)是< class' xlrd.book.Book >所以当我们调用函数
时xl_ref.add_sheet('Test1')
错误书对象没有属性。基本上每当我们想要操作.xls文件而不影响现有的更改时。首先,转换为工作簿对象。
from xlutils.copy import copy
xlwb_ref=copy(xl_ref)
xlwb_ref.add_sheet('Test1')
xlwb_ref.save('Path to file')
参考:Python_doc
删除工作表:
import pythoncom
from win32com.client.gencache import EnsureDispatch
pythoncom.CoInitialize() #if Calling same thing again and again so better reinitialize.
excel = EnsureDispatch("Excel.Application")
excel_file = excel.Workbooks.Open("Path to file")
sheet = excel.Sheets("Sheet name")
sheet.Delete()
excel_file.Close(True)