1

我正在使用 OpenXML SDK 在 C# 中生成 Word 文档。说到图表,它不支持在 Excel 中编辑数据功能。

我在这里找到了一些示例代码来生成图表。请右键单击图表区域,然后选择编辑数据,没有任何反应。 https://code.msdn.microsoft.com/office/How-to-create-Chart-into-a7d424f6

在此处输入图像描述

预期的行为是使用数据打开 Excel。 在此处输入图像描述

我还尝试了另一个流行的开源库 Xceed Docx https://github.com/xceedsoftware/docx

同样的问题也存在。Syncfusion 确实支持此功能,但需要支付许可费用。

如何使用 OpenXML SDK 或 DocX 或任何其他开源库来实现此功能?

30 年 11 月编辑 - 我知道从模板创建文档(模板已经有图表,并且它支持编辑 Excel 功能),然后复制它/生成代码,然后使用 OpenXMLSDK PowerTool/OpenXMLSDK Productivity 更新图表值工具。

例如:OpenXmlPowerTools.ChartUpdater.UpdateChart() http://ericwhite.com/blog/update-cached-data-and-embedded-xlsx-for-charts-in-docx-pptx/

我正在寻找在同步融合组件等新文档中创建图表。Syncfusion 不需要任何模板。

任何帮助,将不胜感激。谢谢

4

1 回答 1

2

是的,这可以使用免费的 OpenXML SDK 和 OpenXML Productivity Tool。跟着这些步骤:

  1. 首先将 OpenXML SDK 和 OpenXML Productivity Tool安装到您的开发机器上。
  2. 使用 Word,生成包含饼图的 Word 文档,其中包含您所需的最终要求。
  3. 使用生产力工具,打开在步骤 2 中创建的 word doc,然后单击Reflect Code顶部的按钮。生成文档所需的 c# 代码将在右侧的窗口中。
  4. 使用 Visual Studio,创建一个名为WordChartGenerator. 对于这个项目,Install-Package DocumentFormat.OpenXML在包管理器控制台中输入。这会为您的项目引入必要的 DLL 以使用 OpenXML。
  5. 为这个项目创建一个新的类文件:调用它GeneratedClass.cs并使用第 3 步生成的代码替换整个内容。
  6. 将顶部的命名空间行更改GeneratedClass.csnamespace WordChartGenerator
  7. 返回 Program.cs 文件并在 main 内部,实例化 GeneratedClass 类的实例并使用所需完整文件路径名的路径调用 CreatePackage。类似于以下内容:

    class Program
    {
        static void Main(string[] args)
        {
            var wordGenerator = new GeneratedClass();
        wordGenerator.CreatePackage("C:\\Users\\jeff\\Documents\\WordWithChart.docx");
        }
    }
    
  8. 运行程序,它将在您指定的目录中生成您的文件。

下面的屏幕截图来自使用这些步骤生成的文件

在此处输入图像描述

于 2017-11-30T05:58:09.723 回答