1
我試圖使用xlsxwriter.add_worksheet()創建新工作表,但它更改我的舊工作表。任何可以創建新工作表而不影響其他工作表的工作表以及如何刪除.xls文件中的工作表,因爲我沒有找到xlrd或xlsxwriter中可以刪除工作表的任何函數。如何創建/刪除工作表而不更改.xls文件的舊工作表?
編輯:1試用win32模塊。能夠刪除工作表,但無法在不影響現有工作表的情況下創建新工作表。
我試圖使用xlsxwriter.add_worksheet()創建新工作表,但它更改我的舊工作表。任何可以創建新工作表而不影響其他工作表的工作表以及如何刪除.xls文件中的工作表,因爲我沒有找到xlrd或xlsxwriter中可以刪除工作表的任何函數。如何創建/刪除工作表而不更改.xls文件的舊工作表?
編輯:1試用win32模塊。能夠刪除工作表,但無法在不影響現有工作表的情況下創建新工作表。
更新:找到了答案
創建一個新的工作表:
import xlrd
xl_ref = xlrd.open_workbook('Path to file')
這裏式(xl_ref)是< 類的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)