我想将一系列单元格从一个Excel文件复制到另一个(在Copying Data into Excel找到一个示例,并根据需要对其进行了修改),但收到一条错误消息(如下所示)。数据已复制到目标文件,但无法保存并关闭文件。 我试图创建,重命名以及删除save_file,但这无济于事。 我在这里想念什么?
import win32com.client as win32
# Define the full path for the data file file
data_file = "C:/2020/data.xlsx"
# Define the full path for the final output file
save_file = "C:/2020/result.xlsx"
# Define the template file
template_file = "C:/2020/template.xlsx"
# Use com to copy the files around
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = False
excel.DisplayAlerts = False
# Template file
wb_template = excel.Workbooks.Open(template_file)
# Open up the data file
wb_data = excel.Workbooks.Open(data_file)
# Copy from the data file (select all data in V2:V22 columns)
wb_data.Worksheets("Sheet1").Range("V2:V22").Select()
# Paste into the template file
excel.Selection.Copy(Destination=wb_template.Worksheets("Sheet2").Range("C7"))
# Must convert the path file object to a string for the save to work
wb_template.SaveAs(str(save_file))
wb_template.Close()
wb_data.Close()
excel.DisplayAlerts = True
excel.Quit()`
错误消息:
com_error Traceback (most recent call last)
<ipython-input-37-ffb7fd7b0160> in <module>
33
34 # Must convert the path file object to a string for the save to work
---> 35 wb_template.SaveAs(str(save_file))
36
37
~\Anaconda3\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x9\_Workbook.py in SaveAs(self, Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local, WorkIdentity)
286 , FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup
287 , AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout
--> 288 , Local, WorkIdentity)
289
290 def SaveAsXMLData(self, Filename=defaultNamedNotOptArg, Map=defaultNamedNotOptArg):
com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel', "Microsoft Excel cannot access the file 'C:\\//2020/24D8CD00'. There are several possible reasons:\n\n• The file name or path does not exist.\n• The file is being used by another program.\n• The workbook you are trying to save has the same name as a currently open workbook.", 'xlmain11.chm', 0, -2146827284), None)
答案 0 :(得分:0)
将save_file = "C:/2020/result.xlsx"
更改为save_file = "C:\\2020\\result.xlsx"