C#将Excel图表导出为Word对象(而不是图片)

我想将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的post,但是没有任何改进或者可行的。

例如:

这是我正在尝试做的,虽然我没有一张图表的工作簿,但是我有一本很多图表的书籍,所以我插入图表,比如file.xls!chartSheetname

这其他使用复制和粘贴,只有它插入单元格,而不是图表。 使用图表,复制方法将图表复制到工作簿中的其他位置…

在这个例子中 ,它将一个ole对象添加到单词中,将对象转换为工作簿,创build一个工作表并将数据添加到该工作表。 但是我已经有图表了…我只想插入现有的图表…

问题在于我使用的是Office 2010,当您打开.doc时,它将以兼容模式打开,看起来您无法在兼容模式下将.xlsx中的对象插入到.doc中。 因此,我将.doc转换为.docx,将其打开为.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);