如何更改embedded在Word文档中的图表中的单元格值使用C#
我有一个Word文档,其中包含一些文本和从Excel中粘贴的两个图表。 我正在使用它作为模板。 我想在C#中打开Word文档,更新图表数据值并打印文档。 除了能够访问图表数据,我可以做所有的事情。 我正在使用Microsoft.Office.Interop.Word和Microsoft.Office.Interop.Excel(都是V14)。 这是我的代码:
Word.Application wordApp = new Word.Application(); Word.Document wordDoc = wordApp.Documents.Open("K.docx"); Word.InlineShape shape = wordDoc.InlineShapes[1]; Word.Chart chart = shape.Chart; Excel.Workbook wb = chart.ChartData.Workbook; Excel.Worksheet ws = wb.Worksheets[0]; ws.Cells["E4"] = 90; wordDoc.PrintOut(); wordDoc.Close(); wordApp.Quit();
第五个命令产生这个错误:
未指定错误(从HRESULTexception:0x80004005(E_FAIL))System.Collections.ListDictionaryInternal
更新:我解决了第五个命令中的错误,如下所示:
Word.Application wordApp = new Word.Application(); Word.Document wordDoc = wordApp.Documents.Open("K.docx"); wordApp.ActiveDocument.InlineShapes[1].Chart.ChartData.Activate(); Word.InlineShape shape = wordDoc.InlineShapes[1]; Word.Chart chart = shape.Chart; Excel.Workbook wb = chart.ChartData.Workbook; Excel.Worksheet ws = wb.Worksheets["Sheet1"]; ws.Cells["E4"] = 90; wordDoc.PrintOut(); wordDoc.Close(); wordApp.Quit();
这次ws.Cells["E4"] = 90;
产生以下错误:
该参数不正确。 (从HRESULTexception:0x80070057(E_INVALIDARG))System.Collections.ListDictionaryInternal
尝试使用ws.Range["E4"].FormulaR1C1 = 90;