C# 在PPT幻灯片中创建图表

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

1. 创建柱形图表

2. 创建饼状图表

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

 

使用工具Spire.Presentation for .NET

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

【示例 1 】创建柱形图表

步骤 1 :添加using指令

using Spire.Presentation;
 Spire.Presentation.Charts;
 System;
using System.Drawing;

步骤 2 :创建一个PowerPoint文档

Presentation presentation = new Presentation();

步骤 3 :在幻灯片指定位置绘入指定大小和类型的图表

RectangleF rect = new RectangleF(40,50,1)">680,1)">500);
IChart chart = presentation.Slides[0].Shapes.AppendChart(ChartType.Column3DClustered,rect);

步骤 4 :添加图表数据

//添加图表名
chart.ChartTitle.TextProperties.Text = "2018年上半年销量";
chart.ChartTitle.TextProperties.IsCentered = true;
chart.ChartTitle.Height = 30;
chart.HasTitle = ;

定义一个sting[,]数组
string[,] data = new string[,]
 {
  {产品大类",1)">1月2月3月4月5月6月 },{DW10154210571223130211451336},1)">ZQ13458736582515315429843890YI73558458369576334482TR11201124853010278522252476 }
 };

将数据写入图表后台数据表
for (int i = 0; i < data.GetLength(0); i++)
{
    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,1)"> data[i,j];
        }
    }
}

设置系列标签
chart.Series.SeriesLabel = chart.ChartData[B1G1];

设置类别标签
chart.Categories.CategoryLabels = chart.ChartData[A2A5为各个系列赋值
chart.Series[0].Values = chart.ChartData[B2B5];
chart.Series[1].Values = chart.ChartData[C2C52].Values = chart.ChartData[D2D53].Values = chart.ChartData[E2E54].Values = chart.ChartData[F2F55].Values = chart.ChartData[G2G5"];

步骤 5 :应用图表样式

应用内置图标样式
chart.ChartStyle = ChartStyle.Style12;
设置系列重叠
chart.OverLap = -50;
设置类别间距
chart.GapWidth = 200;

步骤 6 :保存文档

presentation.SavetoFile(柱形图.pptx,FileFormat.Pptx2010);
System.Diagnostics.Process.Start(");

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

全部代码

 System.Drawing;

namespace ColumnChart
{
    class Program
    {
        static void Main([] args)
        {
            创建一个PowerPoint文档
            Presentation presentation = new Presentation();

            插入柱形图
            RectangleF rect = );
            IChart chart = presentation.Slides[0].Shapes.AppendChart(ChartType.Column3DClustered,rect);

            添加图表名
            chart.ChartTitle.TextProperties.Text = ;
            chart.ChartTitle.TextProperties.IsCentered = ;
            chart.ChartTitle.Height = ;
            chart.HasTitle = ;

             }
             };

            将数据写入图表后台数据表
            )
            {
                )
                {
                    将数字类型的字符串转换为整数
                     number;
                     number);
                     (result)
                    {
                        chart.ChartData[i,1)"> number;
                    }
                    
                    {
                        chart.ChartData[i,j];
                    }
                }
            }

            设置系列标签
            chart.Series.SeriesLabel = chart.ChartData[];

            设置类别标签
            chart.Categories.CategoryLabels = chart.ChartData[为各个系列赋值
            chart.Series[];
            chart.Series[应用内置图标样式
            chart.ChartStyle = ChartStyle.Style12;

            设置系列重叠
            chart.OverLap = -设置类别间距
            chart.GapWidth = 200保存并打开文档
            presentation.SavetoFile(stem.Diagnostics.Process.Start();
        }
    }
}
View Code

 

【示例 2 】创建环形图表

步骤 1 :添加using指令

 Spire.Presentation.Drawing;
using System.Drawing;

步骤 2 :新建一个PPT文件

Presentation presentation = new Presentation();

步骤 3 :插入圆环形图表

RectangleF rect = 100,1)">550,1)">3200].Shapes.AppendChart(ChartType.Doughnut,rect,1)">false);

步骤 4 :添加图表数据内容

设置图表名
chart.ChartTitle.TextProperties.Text = 市场份额定义数据
string[] countries = string[] { 古巴墨西哥法国德国 };
int[] sales = int[] { 1800,1)">3000,1)">5100,1)">6200 };

将数据写入图表后台数据表
chart.ChartData[0,1)">0].Text = 国家;
chart.ChartData[1].Text = 销售额0; i < countries.Length; ++i)
{
    chart.ChartData[i + 1,1)">0].Value = countries[i];
    chart.ChartData[i + 1].Value = sales[i];
}

步骤 5 :应用图表标签

设置分类标签
chart.Categories.CategoryLabels = chart.ChartData[为系列赋值
chart.Series[添加点到系列
0; i < chart.Series[0].Values.Count; i++)
{
    ChartDataPoint cdp = new ChartDataPoint(chart.Series[]);
    cdp.Index = i;
    chart.Series[].DataPoints.Add(cdp);
}

为系列里的个点添加背景颜色
chart.Series[0].DataPoints[0].Fill.FillType = FillFormatType.solid;
chart.Series[0].Fill.solidColor.Color = Color.LightBlue;
chart.Series[1].Fill.FillType =1].Fill.solidColor.Color = Color.Mediumpurple;
chart.Series[2].Fill.FillType =2].Fill.solidColor.Color = Color.DarkGray;
chart.Series[3].Fill.FillType =3].Fill.solidColor.Color = Color.DarkOrange;

设置标签显示数值
chart.Series[0].DataLabels.LabelValueVisible = 设置标签显示百分比
chart.Series[0].DataLabels.PercentValueVisible = 设置圆环内径大小
chart.Series[0].DoughnutHoleSize = 60;

步骤 6 :保存文档

presentation.SavetoFile(环形图.pptxstem.Diagnostics.Process.Start(");

圆环图表创建效果

全部代码

 DoughnutChart
{
    创建一个PowerPoint文件
            Presentation presentation = 插入圆环图
            RectangleF rect = false);

            设置图表名
            chart.ChartTitle.TextProperties.Text = 定义数据
             };
             };

            将数据写入图表后台数据表
            chart.ChartData[;
            chart.ChartData[;
            i)
            {
                chart.ChartData[i +  countries[i];
                chart.ChartData[i +  sales[i];
            }

            设置分类标签
            chart.Categories.CategoryLabels = chart.ChartData[为系列赋值
            chart.Series[添加点到系列
            )
            {
                ChartDataPoint cdp = ]);
                cdp.Index = i;
                chart.Series[].DataPoints.Add(cdp);
            }

            为系列里的个点添加背景颜色
            chart.Series[ FillFormatType.solid;
            chart.Series[ Color.LightBlue;
            chart.Series[ Color.Mediumpurple;
            chart.Series[ Color.DarkGray;
            chart.Series[ Color.DarkOrange;

            设置标签显示数值
            chart.Series[设置标签显示百分比
            chart.Series[设置圆环内径大小
            chart.Series[60保存文档
            presentation.SavetoFile(stem.Diagnostics.Process.Start();
        }
    }
}
View Code

 

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

步骤 1 :添加using指令

 System.Data;
using System.Drawing;

步骤 2 :新建文档

Presentation presentation = new Presentation();

步骤 3 :创建图表1:柱形图表

插入柱形图
RectangleF rect = 650,1)">].Shapes.AppendChart(ChartType.ColumnClustered,rec

添加表名
chart.ChartTitle.TextProperties.Text = 2017季度销售情况创建一个DataTable
DataTable dataTable =  DataTable();
dataTable.Columns.Add(new DataColumn(季度System.String)));
dataTable.Columns.Add(system.int32同比增长率System.Decimal)));
dataTable.Rows.Add(1季度200,1)">0.6);
dataTable.Rows.Add(2季度250,1)">0.83季度300,1)">4季度150,1)">0.2);            

将DataTable数据导入图表后台数据表
int c = 0; c < dataTable.Columns.Count; c++)
{
    chart.ChartData[ dataTable.Columns[c].Caption;
}
int r = 0; r < dataTable.Rows.Count; r++object[] datas = dataTable.Rows[r].ItemArray;
    0; c < datas.Length; c++)
    {
        chart.ChartData[r +  datas[c];

    }
}

C1设置类别标签      
chart.Categories.CategoryLabels = chart.ChartData["];

步骤 4 :添加折线图

将系列2的图表类型改为折线图
chart.Series[1].Type = ChartType.LineMarkers;

将系列2显示到第二根轴
chart.Series[1].UseSecondAxis = 显示百分比数据
chart.SecondaryValueAxis.NumberFormat = 0%不显示第二根轴的网格线
chart.SecondaryValueAxis.MajorGridTextLines.FillType = FillFormatType.None;

200;

步骤 5 :保存文件

presentation.SavetoFile(混合图表.pptx");

混合型图表生成效果

全部代码

 混合图表
{
    新建一个PowerPoint文档
            Presentation presentation = 添加表名
            chart.ChartTitle.TextProperties.Text = 创建一个DataTable
            DataTable dataTable =  DataTable();
            dataTable.Columns.Add()));
            dataTable.Columns.Add()));
            dataTable.Rows.Add();
            dataTable.Rows.Add();            

            将DataTable数据导入图表后台数据表
            )
            {
                chart.ChartData[ dataTable.Columns[c].Caption;
            }
             dataTable.Rows[r].ItemArray;
                )
                {
                    chart.ChartData[r +  datas[c];

                }
            }

            设置类别标签      
            chart.Categories.CategoryLabels = chart.ChartData[将系列2的图表类型改为折线图
            chart.Series[ ChartType.LineMarkers;

            将系列2显示到第二根轴
            chart.Series[显示百分比数据
            chart.SecondaryValueAxis.NumberFormat = 不显示第二根轴的网格线
            chart.SecondaryValueAxis.MajorGridTextLines.FillType = FillFormatType.None;

            保存打开文档
            presentation.SavetoFile();
        }
    }
}
View Code

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

 

 

以上是本次关于“C# 创建PPT图表”的全部内容

如需转载,请注明出处。

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...