将受保护的excel工作簿复制到另一个工作簿python中

时间:2017-04-04 06:08:36

标签: python excel win32com

我正在尝试打开受保护的Excel文件,并使用以下代码段将内容复制到另一个文件中:

import win32com.client

xlApp = win32com.client.Dispatch("Excel.Application")
filename='C:/Users/sh/Documents/Supply.xls'
xlwb = xlApp.Workbooks.Open(filename,False,True,None)

for sheet in xlwb.Worksheets:
    xlApp = win32com.client.Dispatch("Excel.Application")
    nwb = xlApp.Workbooks.Add()
    sheet.Copy(Before=nwb.Workheets('Sheet1'))
    nwb.SaveAs("C:/Users/sh/Documents/"+sheet.Name+'.xlsx') # Line 9
    nwb.Close(True)

但是,我无法复制内容,因为它会抛出异常 第9行说“Microsoft Excel无法访问该文件(第9行)

有没有其他方法可以将受保护的Excel工作簿的内容复制到python中的另一个工作簿?

1 个答案:

答案 0 :(得分:0)

import win32com.client
xlApp = win32com.client.Dispatch("Excel.Application")
filename='C:/Py/Input/Supply.xls'
xlwb = xlApp.Workbooks.Open(filename,False,True,None)
sheet= xlwb.Sheets(1)
shhet1=xlwb.Sheets(2)
nwb = xlApp.Workbooks.Add()
sheet.Copy(Before=nwb.Sheets(1))
nwb.SaveAs('Sheet1.csv',24)
nwb.Close(True)
nwb1 = xlApp.Workbooks.Add()
shhet1.Copy(Before=nwb1.Sheets(1))
nwb1.SaveAs('Sheet2.csv',24)
nwb1.Close(True)