首页 > 编程语言 >使用 C# 在Word中插入图表

使用 C# 在Word中插入图表

时间:2023-09-27 15:35:25浏览次数:42  
标签:Word C# Doc Spire chart 图表 ChartType

Word中的图表功能将数据可视化地呈现在文档中。这为展示数据和进行数据分析提供了一种方便且易于使用的工具,使作者能够以直观的方式传达信息。要通过C#代码来实现在Word中绘制图表,可以借助 Spire.Doc for .NET 控件,具体操作参考下文。

  • C# 在Word中插入柱状图
  • C# 在Word中插入折线图

 

Dll引用

有两种安装Spire.Doc for .NET库的方法:

  1. 在Visual Studio中通过NuGet搜索“Spire.Doc”,然后点击“安装”将其引用到程序中。
  2. 点击以下链接将Spire.Doc for .NET下载到本地,解压后,然后手动将BIN文件夹下的Spire.Doc.dll文件添加引用至程序。

 https://www.e-iceblue.cn/Downloads/Spire-Doc-NET.html

 

C# 在Word中插入柱状图

柱状图可以快速比较不同类别或组之间的数量差异,帮助人们识别趋势和模式。要在Word中插入柱状图,可以使用Paragraph.AppenChart(ChartType.Column, float width, float height) 方法。完整代码如下:

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields.Shapes.Charts;
using Spire.Doc.Fields;

namespace CreateColumnChart
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建 Document 对象
            Document document = new Document();

            //添加一节
            Section section = document.AddSection();

            //添加一个段落
            Paragraph paragraph = section.AddParagraph();

            //将一个指定大小的柱状图添加到段落中
            ShapeObject shape = paragraph.AppendChart(ChartType.Column, 450, 250);

            //获取该图表
            Chart chart = shape.Chart;

            //清除图表的默认系列数据
            chart.Series.Clear();

            //添加一个具有指定系列名称、类别名称和系列值的自定义系列到图表中
            chart.Series.Add("销售1组",
                new[] { "第一季度", "第二季度", "第三季度", "第四季度" },
                new double[] { 5000, 8000, 9000, 8500 });

            //添加另一个系列
            chart.Series.Add("销售2组",
            new[] { "第一季度", "第二季度", "第三季度", "第四季度" },
            new double[] { 3000, 5000, 7000, 6000 });

            //设置图标标题
            chart.Title.Text = "各组季度销售额";

            //设置 Y 轴的数字格式
            chart.AxisY.NumberFormat.FormatCode = "#,##0";

            //设置图例位置
            chart.Legend.Position = LegendPosition.Bottom;

            //保存结果文档
            document.SaveToFile("柱状图.docx", FileFormat.Docx2019);
        }
    }
}

 

 

C# 在Word中插入折线图

折线图是一种常用的统计图表,用于展示数据随着时间、顺序或其他连续变量的变化趋势。它由一系列连接在一起的数据点组成,通过连线来表示数据的变化。插入折线图步骤与插入柱状图类似,完整代码如下:

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields.Shapes.Charts;
using Spire.Doc.Fields;

namespace WordLineChart
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Document对象
            Document document = new Document();

            //添加一节
            Section section = document.AddSection();

            //添加一个段落
            Paragraph newPara = section.AddParagraph();

            //将指定大小的折线图添加到段落中
            ShapeObject shape = newPara.AppendChart(ChartType.Line, 460, 300);

            //获取该图表
            Chart chart = shape.Chart;

            //设置图表标题
            chart.Title.Text = "销售报表";

            //清除图表的默认系列数据
            chart.Series.Clear();

            //将具有指定系列名称、类别名称和系列值的三个自定义系列添加到图表中
            string[] categories = { "第一季度", "第二季度", "第三季度", "第四季度" };
            chart.Series.Add("销售1组", categories, new double[] { 1200, 2500, 2500, 3800 });
            chart.Series.Add("销售2组", categories, new double[] { 1500, 1800, 3000, 4000 });
            chart.Series.Add("销售3组", categories, new double[] { 1200, 2000, 3200, 3600 });

            //设置图例位置
            chart.Legend.Position = LegendPosition.Top;

            //保存结果文档
            document.SaveToFile("折线图.docx", FileFormat.Docx);
            document.Dispose();

        }
    }
}

 

Spire.Doc for .NET 提供的 Paragraph.AppenChart(ChartType chartType, float width, float height) 方法中的 ChartType 枚举包含了 MS Word 中预定义的各种图表类型。因此除了柱状图和折线图外,你还可以创建二维或三维的条形图 (ChartType.Bar)、气泡图 (ChartType.Bubble)、饼图 (ChartType.Pie)、散点图 (ChartType.Scatter)、三维曲面图 (ChartType.Surface3D) 等。

 

----如果想去除生成文档中的红色水印,可以点击申请一个月的试用授权进行测试。

标签:Word,C#,Doc,Spire,chart,图表,ChartType
From: https://www.cnblogs.com/Yesi/p/17732833.html

相关文章

  • 深度学习-梯度下降MiniBatch、RMSprop、Adam等
    目录 0、综述:SGD1、mini-batch2、指数平均加权3、理解指数加权平均4、指数加权平局的修正5、动量梯度下降法6、RMSprop7、Adam优化算法8、衰减率9、局部最优  0、综述:在VSLAM后端中有各种梯度下降优化算法,例如:最速下降法、牛顿法、高斯-牛顿法、LM法、Dog......
  • logwatch日志分析工具安装与使用
    Linux日志分析工具(logwatch)安装及使用运维网工 2023-09-1209:00 发表于重庆收录于合集#运维工程师185个#Linux运维19个#linux运维23个#运维工具96个链接:http://c.biancheng.net/view/1108.htmlLinux日志分析工具(logwatch)安装及使用日志是非常重要的系统文......
  • WEBRTC回声消除-AECM算法源码解析之参数解析
    一概述 webrtc针对回声问题一共开源了3种回声消除算法,分别为aec,aecm,以及aec3,其中aec是最早期的版本,在后续的更新中aec3的出现代替了aec在webrtc中的地位,而aecm主要是针对计算能力较弱的移动端或是嵌入式设备而开发的,但同时也带来了它自己的劣势;本文主要介绍AECM算法的计......
  • Go - Live reload of configurations
    main.go:packagemainimport("encoding/json""fmt""log""os""time""github.com/fsnotify/fsnotify")typeconfigstruct{Namestring`json:"name"`}......
  • vue3项目结合ant design vue的upLoad组件实现上传和下载Excel文件
    1.上传文件  1.组件引入    import{ Button, Upload}from'ant-design-vue'  2.代码    <Upload      v-model:file-list="fileList"      name="file"      //限制文件格式      acce......
  • P6066 [USACO05JAN] Watchcow S
    prologue这个题这么水的一个板子题。analysis这个题目我们正反建两条边,在跑欧拉回路的时候,看这个边是不是被走过,走过就不走,跳过这个边。如果没走,就走这条边并且标记这个边走过了。codetime#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#definerlr......
  • JavaScript下载base64位文件
    1/**2*下载文件3**/4functiondownloadExcel(base64Data){5varmyBlob=this.base64toBlob(base64Data);6varmyUrl=URL.createObjectURL(myBlob);7varlink=document.createElement("a");8......
  • 【从0学习Solidity】9. 常数 constant和immutable
    【从0学习Solidity】9.常数constant和immutable博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本......
  • 【从0学习Solidity】 6. 引用类型, array, struct
    【从0学习Solidity】6.引用类型,array,struct博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本......
  • 【从0学习Solidity】 5. 变量数据存储和作用域 storage/memory/calldata
    【从0学习Solidity】5.变量数据存储和作用域storage/memory/calldata博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的......