将单元格范围从 Excel 复制到另一个 Python
Copying range of cells from on Excel to another with Python
我想将一系列单元格从一个 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[=13=]020813-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)
将save_file = "C:/2020/result.xlsx"
更改为save_file = "C:\2020\result.xlsx"
我想将一系列单元格从一个 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[=13=]020813-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)
将save_file = "C:/2020/result.xlsx"
更改为save_file = "C:\2020\result.xlsx"