我想将Excel图表导出为Word作为对象(Excel图表),而不是图片。使用Chart.CopyPicture
非常容易我正在使用AddOleObject,但是它提供了一个无法链接文件的错误。这是代码:
Document doc; // Existing document
string chartSheet = xlsFilePath + "!" + chartSheetName;
string type = "Excel.Chart.8";
InlineShape shape = doc.Content.InlineShapes.AddOLEObject(ClassType: type, FileName: chartSheet, LinkToFile: false, DisplayAsIcon: false);
我已经看过很多关于将excel导入Word的帖子,但没有任何更新或更有效。
例如:
This one是我想要做的,虽然不是带有图表的1张工作簿,但我有一本包含许多图表的书,所以我插入了图表,如file.xls!chartSheetname
This other使用复制和粘贴,只插入单元格,而不是图表。使用图表,复制方法将图表复制到工作簿中的antoher位置...
使用this one,它会将一个ole对象添加到word中,将该对象强制转换为工作簿,创建工作表并将数据添加到该工作表。但我已经有了图表...我只想插入现有的图表......
答案 0 :(得分:0)
问题在于我使用的是Office 2010,当您打开.doc时,它会以兼容模式打开,而且似乎无法在.xlsx中插入对象兼容模式下的.doc。所以,我在.docx中转换了.doc,将其打开为.docx然后插入它:
Word.Application wordAPP = new Word.Application();
Word.Document docx = wordAPP.Documents.Open(docFile, false, true, false, Format:Word.WdOpenFormat.wdOpenFormatXMLDocument);
Chart chart = xlsx.Charts[chartSheetName];
chart.ChartArea.Select();
chart.ChartArea.Copy();
docx.Application.Selection.PasteAndFormat(Word.WdRecoveryType.wdFormatOriginalFormatting);