4

我想将 Excel 图表作为对象(Excel 图表)导出到 Word,而不是作为图片。因为使用 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 的帖子,但没有最新的或有效的。

例如:

就是我想要做的,虽然不是一张带图表的工作簿,我有一本书有很多图表,所以我插入了像 file.xls!chartSheetname 这样的图表

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

有了这个,它将一个 ole 对象添加到 word,将该对象转换为工作簿,创建一个工作表并将数据添加到该工作表。但我已经有了图表...我只想插入现有图表...

4

1 回答 1

2

问题是我使用的是 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);
于 2013-03-05T11:50:11.170 回答