2017-08-09 68 views
1

我試圖使用xlsxwriter.add_worksheet()創建新工作表,但它更改我的舊工作表。任何可以創建新工作表而不影響其他工作表的工作表以及如何刪除.xls文件中的工作表,因爲我沒有找到xlrd或xlsxwriter中可以刪除工作表的任何函數。如何創建/刪除工作表而不更改.xls文件的舊工作表?

編輯:1試用win32模塊。能夠刪除工作表,但無法在不影響現有工作表的情況下創建新工作表。

回答

0

更新:找到了答案

創建一個新的工作表

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)