如何使用 C# 生成和自定义 Word 图表

发布: (2025年12月8日 GMT+8 14:59)
5 min read
原文: Dev.to

Source: Dev.to

生成报告与可视化数据

生成报告和可视化数据是许多业务应用中的关键任务。虽然 Microsoft Word 是文档创建的常用工具,但手动嵌入和更新图表既繁琐又容易出错。本教程演示如何使用 C# 和 Spire.Doc for .NET 库以编程方式在 Word 文档中创建和自定义图表。

环境搭建

要以编程方式在 Word 文档中创建图表,需要一个能够在不依赖 Microsoft Office 的情况下操作 Word 文件的库。Spire.Doc for .NET 提供了完整的 Word 文档操作功能,包括图表创建。

通过 NuGet 安装

  1. 创建新项目 – 打开 Visual Studio,创建一个新的 C# 控制台应用程序(.NET Core 或 .NET Framework)。
  2. 安装 NuGet 包
    • 在解决方案资源管理器中右键单击项目 → 管理 NuGet 包…
    • 浏览 选项卡中搜索 Spire.Doc
    • 选中 Spire.Doc 并点击 安装

安装完成后,你即可使用所有用于处理 Word 文档和图表的类和方法。

了解图表类型与数据系列

在编写代码之前,先了解图表的基本组成部分:图表类型数据系列。Spire.Doc 支持 Microsoft Word 中常见的多种图表类型。

常见图表类型

  • 条形/柱形图 – 对比不同类别的数值。
  • 折线图 – 显示随时间或有序类别的趋势。
  • 饼图 – 展示整体中各部分的比例。
  • 气泡图 – 可视化三维数据(X、Y 和大小)。

这些类型在 Spire.Doc.Fields.Shapes.Charts.ChartType 中以枚举形式提供。

数据系列

数据系列是一组在图表中绘制的相关数据点。常见元素包括:

  • 类别(标签) – 每个数据点的文字描述(例如月份、产品名称)。
  • 数值 – 与每个类别对应的数值。
  • 附加数值 – 某些图表类型所需(例如气泡大小)。

使用 ChartSeriesCollectionChartSeries 来管理和添加数据系列。

步骤式图表创建

下面演示如何创建一个简单的饼图,并给出气泡图的示例。

1. 初始化文档和节

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using Spire.Doc.Fields.Shapes.Charts; // Required for Chart and ChartSeries

// Create a new Word document
Document doc = new Document();
Section section = doc.AddSection();
Paragraph paragraph = section.AddParagraph();

2. 添加图表形状

// Append a pie chart (width 500, height 300)
ShapeObject shape = paragraph.AppendChart(ChartType.Pie, 500.0f, 300.0f);
Chart chart = shape.Chart; // Retrieve the Chart object

注意: 如果出现命名冲突,请使用完整命名空间 Spire.Doc.Fields.Shapes.Charts.Chart

3. 添加数据系列

// Clear any existing series (good practice for new charts)
chart.Series.Clear();

// Define categories and values
string[] categories = { "Word", "PDF", "Excel" };
double[] dataValues = { 2.7, 3.2, 0.8 };

// Add a series to the chart
ChartSeries series = chart.Series.Add("Document Types", categories, dataValues);

示例:气泡图创建

Paragraph newPara = section.AddParagraph();

// Append a bubble chart
ShapeObject bubbleShape = newPara.AppendChart(ChartType.Bubble, 500, 300);
Chart bubbleChart = bubbleShape.Chart;

bubbleChart.Series.Clear();

ChartSeries bubbleSeries = bubbleChart.Series.Add(
    "Market Share",
    new[] { 2.9, 3.5, 1.1, 4.0, 4.0 }, // X-values
    new[] { 1.9, 8.5, 2.1, 6.0, 1.5 }, // Y-values
    new[] { 9.0, 4.5, 2.5, 8.0, 5.0 }  // Bubble sizes
);

4. 保存文档

doc.SaveToFile("ChartInWordDocument.docx", FileFormat.Docx);

生成的 Word 文档

在 Word 文档中使用 C# 创建饼图和气泡图

高级自定义

Spire.Doc 提供了丰富的选项来定制图表的外观和行为。

图表标题

void AppendChartTitle(Chart chart)
{
    ChartTitle title = chart.Title;
    title.Show = true;
    title.Overlay = false; // Set to true if the title should overlap the plot area
    title.Text = "Quarterly Software Usage";
    title.CharacterFormat.FontSize = 12;
    // Additional formatting can be applied here
}

你还可以进一步自定义坐标轴、图例、数据标签、颜色等,所有这些都可以通过 Chart 对象的属性来实现。

Back to Blog

相关文章

阅读更多 »