【问题标题】:C# Export Excel Chart as object (not as picture) to WordC# 将 Excel 图表作为对象(不是图片)导出到 Word
【发布时间】:2013-03-05 19:50:11
【问题描述】:

我想将 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 的帖子,但没有最新的或有效的。

例如:

This one 是我正在尝试做的事情,虽然我不是一张带有图表的工作簿,而是一本带有许多图表的书,所以我插入了类似 file.xls!chartSheetname 的图表

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

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

【问题讨论】:

    标签: c# excel ms-word office-interop export-to-word


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-22
      • 2021-06-16
      • 2023-04-01
      • 2022-12-11
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多