我有一个CAD绘制的.dxf文件,我想将其嵌入到Excel中去。
想达到的效果是:在Excel中能看到dxf中在CAD绘制的图形,在Excel中双击嵌入的dxf可以打开CAD,在CAD中修改图形并保存后,结果会跟着更新到Excel中。就好像在Word中嵌入一个Excel图表一样,双击这个图表可以直接在Excel中编辑。
现在想想,好像一切都卡在Python操作dxf文件嵌入Excel的过程中了。
我试着在Excel中自行插入dxf文件,但没成功,在Excel的插入选项中有一个对象的选项,我试着新建对象类型-选择AutoCAD图形,确定后,Excel当前页会出现一个空白框,我双击后,其打开了CAD,我在CAD中进行操作后,点击保存,保存结果会更新到Excel中,Excel中还是那个空白框,但是,空白框内有我刚刚绘制的图形。
我想达到的效果与这个类似,就是嵌入.dxf文件后,也是显示一个空白框,但这个空白框中显示着dxf中绘制的图像。在嵌入操作完成后,空白框中就跟着显示dxf图像。
这是我询问人工智能给的结果,但都会报错,
报错内容如下:pywintypes.com_error: (-2147352567, '发生意外。', (0, 'Microsoft Excel', '不能插入对象。', 'xlmain11.chm', 0, -2146827284), None)
代码如下:
import win32com.client
def insert_dxf_into_excel(excel_file, dxf_file_path):
xl = win32com.client.Dispatch("Excel.Application")
xl.Visible = True
wb = xl.Workbooks.Open(excel_file)
ws = wb.ActiveSheet
# 在指定位置插入.dxf文件
# ws.Shapes.AddOLEObject(Left=100, Top=100, Width=300, Height=300, FileName=dxf_file_path, Link=False)
shape = ws.Shapes.AddOLEObject(ClassType="AutoCAD.AcDbDocument.18", Link=False)
shape.OLEFormat.Object.LoadFromFile(dxf_file_path)
wb.Save()
xl.Quit()
# 将.dxf插入到Excel文件中
excel_file_path = r'aaa.xlsx'
dxf_file_path = r'Drawing1.dxf'
insert_dxf_into_excel(excel_file_path, dxf_file_path)