I would like to copy a range of cells from one Excel file to another (found an example at Copying Data into Excel and modified it to my needs), but get an error message (can be seen below). Data is copied to destination file, but I can't get it to save and close the file. I have tried to create and rename and also delete save_file, but this won't help. What am I missing here?
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()`
Error message:
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)
Change save_file = "C:/2020/result.xlsx"
to save_file = "C:\\2020\\result.xlsx"