【问题标题】:How to get charts from Excel and add them to Word using Microsoft.Office.Interop?如何从 Excel 中获取图表并使用 Microsoft.Office.Interop 将它们添加到 Word?
【发布时间】:2014-08-13 07:09:53
【问题描述】:

我尝试使用Microsoft.Office.Interop.Excel.Chart.Export() 方法将图表导出为图像,但图像质量很差(最好的结果是使用 PNG 格式)。有什么方法可以在导出期间仅使用Microsoft.Office.Interop 设置图像的分辨率?

另一方面,我的同事正在使用 VBA,他可以直接从 Excel 将图表导出为 .emf 文件(使用 WinAPI),所以我尝试使用 Microsoft.Office.Interop.Word.InlineShapes.AddPicture() 方法包含它们,但似乎它不能直接包含.emf 文件

有没有不同的,也许更好的方法来做到这一点?

更新:我不知道为什么我认为不可能包含 .emf 文件,但我仍然想导出高分辨率图像。

【问题讨论】:

  • 一个想法是将其保存为图像,然后将其导入文档。所以问题:stackoverflow.com/questions/1716221/…
  • SpreadsheetGear.NET 好像不是免费的。
  • 使用AddOleObject()怎么样?
  • 是的,我正在调查它,这很糟糕。试试这个:stackoverflow.com/a/4997875/2367343
  • 我真的不明白为什么在使用Microsoft.Office.Interop.Excel.Chart.Export()或者选择一些矢量格式时没有选择图像质量。

标签: c# excel office-interop excel-interop


【解决方案1】:

这很丑,但是在导出之前如何放大图表:

    myChart.ScaleWidth(2, msoFalse, msoScaleFromTopLeft);
    myChart.ScaleHeight(2, msoFalse, msoScaleFromTopLeft); 

然后在导出后,如果需要,将 2 替换为 .5...

将其导入 Word 时,可以对形状执行 ScaleWidth 和 ScaleHeight 以获得所需的大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多