Python 使用 win32com 插入 Excel 附件报错:'不能插入对象。'
使用 Python 的 win32com 库向 Excel 文件插入附件时,可能会遇到错误:'不能插入对象。'。这个错误通常是由于以下原因导致的:
-
Excel 文件已被其他进程锁定,无法进行修改。 请确认没有其他程序正在访问该文件,并尝试重新运行代码。
-
Excel 中的工作表或单元格名称不正确。 请确保
sheet_name和cell参数的值正确。 -
您的 Excel 版本不支持该操作。 请确保您的 Excel 版本与代码兼容。
如果尝试上述解决方案后仍然出现错误,请提供更多详细信息,以便更好地帮助您解决问题。
以下是示例代码:
import win32com.client
def insert_attachment(excel_path, sheet_name, cell, attachment_path):
xlApp = win32com.client.Dispatch('Excel.Application')
xlApp.Visible = 0
workbook = xlApp.Workbooks.Open(excel_path)
worksheet = workbook.Sheets(sheet_name)
embedded_object = worksheet.OLEObjects()
for obj in embedded_object:
obj.Delete() # 删除现有的附件,确保只有一个附件存在
embedded_object.Add(ClassType=None, Filename=attachment_path, Link=False, DisplayAsIcon=True,
Left=cell.Left + 10, Top=cell.Top + 10)
worksheet.Rows(cell.Row).RowHeight = 53
worksheet.Columns(cell.Column).ColumnWidth = 75
workbook.Save()
workbook.Close()
xlApp.Quit()
excel_path = r'D:\STRESSTOOL\GPU_Caps_Viewer\benchmark\2.xlsx'
sheet_name = 'Benchmark Tool'
attachment_path = r'D:\STRESSTOOL\GPU_Caps_Viewer\benchmark\1.png'
xlApp = win32com.client.Dispatch('Excel.Application')
workbook = xlApp.Workbooks.Open(excel_path)
worksheet = workbook.Sheets(sheet_name)
cell = worksheet.Range('H8')
insert_attachment(excel_path, sheet_name, cell, attachment_path)
原文地址: https://www.cveoy.top/t/topic/qqQq 著作权归作者所有。请勿转载和采集!