图表能够很直观的表现数据在某个时间段的变化趋势,或者呈现数据的整体和局部之间的相互关系,相较于大篇幅的文本数据,图表更增加了我们分析数据时选择的多样性,是我们挖掘数据背后潜在价值的一种更为有效地方式。在做数据汇报时,常用到PPT幻灯片来辅助工作,下面的示例中将演示如何通过C#编程在PPT幻灯片中创建图表。示例中主要介绍了三种图表的创建方法,如下:

  1. 创建柱形图表
  2. 创建饼状图表
  3. 创建混合型图表(柱形图、折线图)

使用工具:Spire.Presentation for .NET
PS:下载安装后,注意添加引用Spire.Presentation.dll到程序,dll文件可在安装路径下的Bin文件夹中获取。

【示例 1 】创建柱形图表

using Spire.Presentation;
using Spire.Presentation.Charts;
using System;
using System.Drawing;namespace ColumnChart
{class Program{static void Main(string[] args){//创建一个PowerPoint文档Presentation presentation = new Presentation();//插入柱形图RectangleF rect = new RectangleF(40, 50, 680, 500);IChart chart = presentation.Slides[0].Shapes.AppendChart(ChartType.Column3DClustered, rect);//添加图表名chart.ChartTitle.TextProperties.Text = "2018年上半年销量";chart.ChartTitle.TextProperties.IsCentered = true;chart.ChartTitle.Height = 30;chart.HasTitle = true;//定义一个sting[,]数组string[,] data = new string[,]{{"产品大类","1月","2月","3月","4月","5月","6月" },{"DW10","1542","1057","1223","1302","1145","1336"},{"ZQ13","4587","3658","2515","3154","2984","3890" },{"YI73","558","458","369","576","334","482" },{"TR11","2011","2485" ,"3010" ,"2785" ,"2225" ,"2476" }};//将数据写入图表后台数据表for (int i = 0; i < data.GetLength(0); i++){for (int j = 0; j < data.GetLength(1); j++){//将数字类型的字符串转换为整数int number;bool result = Int32.TryParse(data[i, j], out number);if (result){chart.ChartData[i, j].Value = number;}else{chart.ChartData[i, j].Value = data[i, j];}}}//设置系列标签chart.Series.SeriesLabel = chart.ChartData["B1", "G1"];//设置类别标签chart.Categories.CategoryLabels = chart.ChartData["A2", "A5"];//为各个系列赋值chart.Series[0].Values = chart.ChartData["B2", "B5"];chart.Series[1].Values = chart.ChartData["C2", "C5"];chart.Series[2].Values = chart.ChartData["D2", "D5"];chart.Series[3].Values = chart.ChartData["E2", "E5"];chart.Series[4].Values = chart.ChartData["F2", "F5"];chart.Series[5].Values = chart.ChartData["G2", "G5"];//应用内置图标样式chart.ChartStyle = ChartStyle.Style12;//设置系列重叠chart.OverLap = -50;//设置类别间距chart.GapWidth = 200;//保存并打开文档presentation.SaveToFile("柱形图.pptx", FileFormat.Pptx2010);System.Diagnostics.Process.Start("柱形图.pptx");}}
}

调试运行程序后,生成图表,如下图:

【示例 2 】创建环形图表

using Spire.Presentation;
using Spire.Presentation.Charts;
using Spire.Presentation.Drawing;
using System.Drawing;namespace DoughnutChart
{class Program{static void Main(string[] args){//创建一个PowerPoint文件Presentation presentation = new Presentation();//插入圆环图RectangleF rect = new RectangleF(40, 100, 550, 320);IChart chart = presentation.Slides[0].Shapes.AppendChart(ChartType.Doughnut, rect, false);//设置图表名chart.ChartTitle.TextProperties.Text = "市场份额";chart.ChartTitle.TextProperties.IsCentered = true;chart.ChartTitle.Height = 30;chart.HasTitle = true;//定义数据string[] countries = new string[] { "古巴", "墨西哥", "法国", "德国" };int[] sales = new int[] { 1800, 3000, 5100, 6200 };//将数据写入图表后台数据表chart.ChartData[0, 0].Text = "国家";chart.ChartData[0, 1].Text = "销售额";for (int i = 0; i < countries.Length; ++i){chart.ChartData[i + 1, 0].Value = countries[i];chart.ChartData[i + 1, 1].Value = sales[i];}//设置系列标签chart.Series.SeriesLabel = chart.ChartData["B1", "B1"];//设置分类标签chart.Categories.CategoryLabels = chart.ChartData["A2", "A5"];//为系列赋值chart.Series[0].Values = chart.ChartData["B2", "B5"];//添加点到系列for (int i = 0; i < chart.Series[0].Values.Count; i++){ChartDataPoint cdp = new ChartDataPoint(chart.Series[0]);cdp.Index = i;chart.Series[0].DataPoints.Add(cdp);}//为系列里的个点添加背景颜色chart.Series[0].DataPoints[0].Fill.FillType = FillFormatType.Solid;chart.Series[0].DataPoints[0].Fill.SolidColor.Color = Color.LightBlue;chart.Series[0].DataPoints[1].Fill.FillType = FillFormatType.Solid;chart.Series[0].DataPoints[1].Fill.SolidColor.Color = Color.MediumPurple;chart.Series[0].DataPoints[2].Fill.FillType = FillFormatType.Solid;chart.Series[0].DataPoints[2].Fill.SolidColor.Color = Color.DarkGray;chart.Series[0].DataPoints[3].Fill.FillType = FillFormatType.Solid;chart.Series[0].DataPoints[3].Fill.SolidColor.Color = Color.DarkOrange;//设置标签显示数值chart.Series[0].DataLabels.LabelValueVisible = true;//设置标签显示百分比chart.Series[0].DataLabels.PercentValueVisible = true;//设置圆环内径大小chart.Series[0].DoughnutHoleSize = 60;//保存文档presentation.SaveToFile("环形图.pptx", FileFormat.Pptx2013);System.Diagnostics.Process.Start("环形图.pptx");}}
}

环形图创建效果:

【示例 3 】创建混合型图表

using Spire.Presentation;
using Spire.Presentation.Charts;
using Spire.Presentation.Drawing;
using System;
using System.Data;
using System.Drawing;namespace 混合图表
{class Program{static void Main(string[] args){//新建一个PowerPoint文档Presentation presentation = new Presentation();//插入柱形图RectangleF rect = new RectangleF(40, 100, 650, 320);IChart chart = presentation.Slides[0].Shapes.AppendChart(ChartType.ColumnClustered, rect);//添加表名chart.ChartTitle.TextProperties.Text = "2017季度销售情况";chart.ChartTitle.TextProperties.IsCentered = true;chart.ChartTitle.Height = 30;chart.HasTitle = true;//创建一个DataTableDataTable dataTable = new DataTable();dataTable.Columns.Add(new DataColumn("季度", Type.GetType("System.String")));dataTable.Columns.Add(new DataColumn("销售额", Type.GetType("System.Int32")));dataTable.Columns.Add(new DataColumn("同比增长率", Type.GetType("System.Decimal")));dataTable.Rows.Add("1季度", 200, 0.6);dataTable.Rows.Add("2季度", 250, 0.8);dataTable.Rows.Add("3季度", 300, 0.6);dataTable.Rows.Add("4季度", 150, 0.2);            //将DataTable数据导入图表后台数据表for (int c = 0; c < dataTable.Columns.Count; c++){chart.ChartData[0, c].Text = dataTable.Columns[c].Caption;}for (int r = 0; r < dataTable.Rows.Count; r++){object[] datas = dataTable.Rows[r].ItemArray;for (int c = 0; c < datas.Length; c++){chart.ChartData[r + 1, c].Value = datas[c];}}//设置系列标签chart.Series.SeriesLabel = chart.ChartData["B1", "C1"];//设置类别标签      chart.Categories.CategoryLabels = chart.ChartData["A2", "A5"];//为系列赋值chart.Series[0].Values = chart.ChartData["B2", "B5"];chart.Series[1].Values = chart.ChartData["C2", "C5"];//将系列2的图表类型改为折线图chart.Series[1].Type = ChartType.LineMarkers;//将系列2显示到第二根轴chart.Series[1].UseSecondAxis = true;//显示百分比数据chart.SecondaryValueAxis.NumberFormat = "0%";//不显示第二根轴的网格线chart.SecondaryValueAxis.MajorGridTextLines.FillType = FillFormatType.None;//设置系列重叠chart.OverLap = -50;//设置类别间距chart.GapWidth = 200;//保存打开文档presentation.SaveToFile("混合图表.pptx", FileFormat.Pptx2010);System.Diagnostics.Process.Start("混合图表.pptx");}}
}

图表创建结果:

注:Spire.Presentation 支持创建多大73种不同的图表样式,如下图

以上是本次关于“C# 创建PPT图表”的全部内容。
如需转载,请注明出处。

转载于:https://blog.51cto.com/eiceblue/2176675

C# 创建PPT图表相关推荐

  1. 你知道如何快捷地在Java中使用现有Excel数据创建PPT图表吗?

    Spire.Office for .NET是一套企业级的涵盖 E-iceblue 所有 .NET Office 组件的集合.使用 Spire.Office for .NET,开发人员可以创建大量的用于 ...

  2. ppt图表图表类型起始_梅科图表

    ppt图表图表类型起始 There are different types of variable width bar charts but two are the most popular: 1) ...

  3. JAVA实现在面板中添加图表_Java 创建PowerPoint图表并为其添加趋势线

    图表,是指将既得数据用图形的方式表示出来.在前文中我们介绍过如何使用Java程序来为Excel文档创建图表的方法.本文将通过使用Java程序来演示如何创建PowerPoint图表及为图表添加趋势线.趋 ...

  4. 用 MAUI 在Windows 和 Linux 绘制 PPT 图表

    我在做一个图表工具软件,这个软件使用 MAUI 开发.我的需求是图表的内容需要和 PPT 的图表对接,需要用到 OpenXML 解析 PPT 内容,读取到 PPT 图表元素的内容,接着使用 MAUI ...

  5. java使用poi导出ppt图表——环形图/空心饼图

    目录 前言 使用java poi导出图表,就是找不到环形图/空心饼图怎么做的(或者是我没找到),找到的都是饼图,柱图,线图等. 所以就简单说一下怎么导出的. 一.导入poi相关jar包 二.先创建ex ...

  6. vue 高德地图 不同区域显示不同颜色_没想到高德地图还能这么用,简直是PPT图表神器!...

    本文转自:公众号"旁门左道PPT" 作者:邵云蛟 提到高德地图,相信咱们每一个人都不会陌生,日常用来导航,也可以用来打车,一次呼叫8种车型,非常方便: 但是,如果你把它仅仅当做一个 ...

  7. easyui datagrid oncheck 修改行样式_100 种 PPT 图表样式送给你

    你好,这里是诺灰屋 我是诺灰 距离上一篇推文,已有近一个月的时间没有给大家写推送了. 这期间,我一直在进行数据图表方面知识的网络调研.甚至于在知网上找了几篇论文来看,当然,内容很枯燥,不实用. 同时, ...

  8. PPT技巧分享,教你制作美美的PPT图表

    小伙伴们,你们在制作PPT的时候,有没有觉得制作图表很难呢?有没有被老板嫌弃PPT图表很丑呢? 其实,所有事物都是有套路的,只要跟着套路走,我们就可以很快地解决. 先来看看哈,PPT图表一共有10种. ...

  9. ppt中的面积显示图表中有数据被盖住了显示不出来_关于PPT图表的用法,看这一篇就够了...

    来了,来了,它来了, 图表教程会迟到,但永远不会缺席! 在一个月前,我们联系到公众号PK阿锴主理人王培锴, 经过双方反复的推敲,终于完成了这篇PPT图表秘笈. 希望这篇文章能给你一些小小启发, 文末有 ...

  10. POI操作ppt图表完整示例演示

    poi操作ppt图表史上最完整示例演示和内嵌excel的获取添加数据简单示例,POI3.15版本. 在模板中构造几中基本图表进行测试就行了. 其它操作ppt的基础资料见:http://blog.csd ...

最新文章

  1. 自己亲自写的两本linux资料,免费下载,pdf文档
  2. 经典c语言程序编程题,c语言35道经典编程题程序
  3. 单进程服务器-select版
  4. 瑞幸咖啡股价再大涨超36% 目前总市值约13.87亿美元
  5. 用户名 不在 sudoers文件中,此事将被报告。
  6. 请君入瓮: 火眼自称遭某 APT 国家黑客组织攻击
  7. 详解vue静态资源打包中的坑与解决方案
  8. mysql cmd定时_windows下定时执行mysql冷备份
  9. powerdesigner中cmd模型中多对多_[进行中]美的多多进宝日
  10. 区块链开源代码什么意思_区块链可以从开源中学到什么
  11. 手机上的环境光传感器
  12. NTFS和FAT32的区别和转换
  13. 一文读懂:制造业头部企业如何构建经营分析数字化体系
  14. 上周内外盘行情回顾及交易情况2022.4.4
  15. codeforces div2 Not Assigning 题解
  16. CSS实现DIV块的阴影效果
  17. 华工历次数学实验源代码
  18. java 调页储存_java调用存储过程
  19. 计算机限制打开移动硬盘,移动硬盘一接到电脑上就显示“一个USB设备超过其集线器端口的电源限制”...
  20. 台式计算机睡眠状态耗电多吗,台式机的休眠状态下还耗电吗?

热门文章

  1. en55032最新标准下载_关于欧盟新版EMC标准EN55032的解析精编版
  2. SQL截取字符串和替换字段
  3. 专利服务器拒收 文件解压异常,电子申请常见问题解答20161024.doc-中国专利电子申请网.doc...
  4. 编译原理(第3版)陈火旺——课后习题答案——第四章
  5. centos刻录工具_CentOS7.0 U盘刻录工具正式版
  6. html页面导出pdf截断问题,vue页面生成pdf且避免分页截断处理
  7. linux变utf8为sjis命令,在派上编译Linux版Onscripter-jh时出现问题
  8. C语言两个数比较大小和三个数比较大小,代码
  9. matlab视频分辨率更改
  10. linux设置伪静态地址,wordpress网站linux和win主机URL伪静态设置方法详解