2013-02-28 129 views
2

我想将excel图表导出为Word(Excel图表),而不是图片。由于图片是非常容易与Chart.CopyPictureC#将Excel图表导出为Word对象(不是图片)

我使用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的帖子,但没有任何uptodate或那个作品。

例如:

This one是什么我正尝试做,但不是1张与图表的工作簿时,我有一本书有许多图表,所以我插入图表像file.xls! chartSheetname

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

并使用this one将单词添加到ole对象,将该对象转换为工作簿,创建工作表并将数据添加到该工作表。但我已经有了图表...我只想插入现有的图表...

回答

0

问题是我在使用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);