OpenXML SDK 不支持新文档中图表 Excel 功能中的编辑数据
OpenXML SDK does not support Edit Data in Excel functionality in Chart in a fresh document
我正在使用 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 功能)然后复制 it/generate 代码,然后使用 OpenXMLSDK PowerTool/OpenXMLSDK 更新图表值生产力工具。
例如:OpenXmlPowerTools.ChartUpdater.UpdateChart()
http://ericwhite.com/blog/update-cached-data-and-embedded-xlsx-for-charts-in-docx-pptx/
我正在寻找在像 syncfusion 组件这样的新文档中创建图表。 Syncfusion 不需要任何模板。
如有任何帮助,我们将不胜感激。谢谢
是的,这可以使用免费的 OpenXML SDK 和 OpenXML Productivity Tool。请按照以下步骤操作:
- 首先 installing both the OpenXML SDK and the OpenXML Productivity Tool 到您的开发机器上。
- 使用 Word,生成一个包含饼图的 Word 文档,其中包含您想要的最终要求。
- 使用快捷效率工具,打开在第 2 步中创建的 word 文档,然后单击顶部的
Reflect Code
按钮。生成文档所需的c#代码将在右侧的window中。
- 使用 Visual Studio,创建一个名为
WordChartGenerator
的简单 C# 控制台应用程序项目。对于此项目,在包管理器控制台中键入 Install-Package DocumentFormat.OpenXML
。这会为您的项目引入必要的 DLL 以使用 OpenXML。
- 为此项目创建一个新的 class 文件:将其命名为
GeneratedClass.cs
并使用步骤 3 中生成的代码替换全部内容。
- 将
GeneratedClass.cs
顶部的名称空间行更改为
namespace WordChartGenerator
返回 Program.cs 文件并在 main 内部,实例化 GeneratedClass 的一个实例 class 并使用指向所需完整文件路径名的路径调用 CreatePackage。类似于以下内容:
class Program
{
static void Main(string[] args)
{
var wordGenerator = new GeneratedClass();
wordGenerator.CreatePackage("C:\Users\jeff\Documents\WordWithChart.docx");
}
}
运行 程序,它将在您指定的目录中生成文件。
下面的屏幕截图来自通过这些步骤生成的文件
我正在使用 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 功能)然后复制 it/generate 代码,然后使用 OpenXMLSDK PowerTool/OpenXMLSDK 更新图表值生产力工具。
例如:OpenXmlPowerTools.ChartUpdater.UpdateChart() http://ericwhite.com/blog/update-cached-data-and-embedded-xlsx-for-charts-in-docx-pptx/
我正在寻找在像 syncfusion 组件这样的新文档中创建图表。 Syncfusion 不需要任何模板。
如有任何帮助,我们将不胜感激。谢谢
是的,这可以使用免费的 OpenXML SDK 和 OpenXML Productivity Tool。请按照以下步骤操作:
- 首先 installing both the OpenXML SDK and the OpenXML Productivity Tool 到您的开发机器上。
- 使用 Word,生成一个包含饼图的 Word 文档,其中包含您想要的最终要求。
- 使用快捷效率工具,打开在第 2 步中创建的 word 文档,然后单击顶部的
Reflect Code
按钮。生成文档所需的c#代码将在右侧的window中。 - 使用 Visual Studio,创建一个名为
WordChartGenerator
的简单 C# 控制台应用程序项目。对于此项目,在包管理器控制台中键入Install-Package DocumentFormat.OpenXML
。这会为您的项目引入必要的 DLL 以使用 OpenXML。 - 为此项目创建一个新的 class 文件:将其命名为
GeneratedClass.cs
并使用步骤 3 中生成的代码替换全部内容。 - 将
GeneratedClass.cs
顶部的名称空间行更改为namespace WordChartGenerator
返回 Program.cs 文件并在 main 内部,实例化 GeneratedClass 的一个实例 class 并使用指向所需完整文件路径名的路径调用 CreatePackage。类似于以下内容:
class Program { static void Main(string[] args) { var wordGenerator = new GeneratedClass(); wordGenerator.CreatePackage("C:\Users\jeff\Documents\WordWithChart.docx"); } }
运行 程序,它将在您指定的目录中生成文件。
下面的屏幕截图来自通过这些步骤生成的文件