如何解决使用Python将单元格范围从Excel复制到另一个
我想将一系列单元格从一个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,CreateBackup
287,TextVisualLayout
--> 288,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',-2146827284),None)
解决方法
将save_file = "C:/2020/result.xlsx"
更改为save_file = "C:\\2020\\result.xlsx"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。