C# 给PPT中的图表添加趋势线的方法
支持趋势线的图表类型包括二维面积图、条形图、柱形图、柱形图、股价图、xy (散点图) 和气泡图中;不能向三维、堆积、雷达图、饼图、曲面图或圆环图的数据系列添加趋势线。可添加的趋势线类型包括6种,即多项式(Polynomial)趋势线、指数(Exponential)趋势线、线性(Linear)趋势线、对数(Logarithmic)趋势线、幂(Power)趋势线、移动平均(移动平均)趋势线。下面以柱形图表为例,添加趋势线。方法及步骤参考如下。
程序环境:
- Visual Studio 2017
- .net framework 4.6.1
- Power Point 2013 (.pptx)
- PPT类库:Spire.Presentation for .NET
一、 实现方法
通过调用Spire.Presentation.dll中Itrendline接口提供的方法 AddTrendLine(TrendlinesType type) 来添加趋势线,编辑代码前,请先按照如下第2点中的方法在程序中添加引用Spire.Presentation.dll。
二、PPT 类库安装
关于PPT 类库安装:可直接通过Nuget 搜索安装到程序。具体方法如下:
鼠标右键点击“引用”,“管理Nuget包”,然后按照下图步骤操作;



完成安装:

三、代码实现
1、C#
using Spire.Presentation;
using Spire.Presentation.Charts;
namespace AddTrendline
{
class Program
{
static void Main(string[] args)
{
//创建Presentation类的实例
Presentation ppt = new Presentation();
//加载PowerPoint文档
ppt.LoadFromFile("test.pptx");
//获取第一张幻灯片
ISlide slide = ppt.Slides[0];
//获取幻灯片上的第一个图表
IChart chart = (IChart)slide.Shapes[0];
//给图表的第一个数据系列添加线性趋势线
ITrendlines trendLine = chart.Series[0].AddTrendLine(TrendlinesType.Polynomial);//多项式趋势线
//ITrendlines trendLine = chart.Series[0].AddTrendLine(TrendlinesType.Exponential);//指数趋势线
//ITrendlines trendLine = chart.Series[0].AddTrendLine(TrendlinesType.Linear);//线性趋势线
//ITrendlines trendLine = chart.Series[0].AddTrendLine(TrendlinesType.Logarithmic);//对数趋势线
//ITrendlines trendLine = chart.Series[0].AddTrendLine(TrendlinesType.Power);//幂趋势线
//ITrendlines trendLine = chart.Series[0].AddTrendLine(TrendlinesType.MovingAverage);//移动平均趋势线
//显示公式
trendLine.displayEquation = true;
//显示R平方值
trendLine.displayRSquaredValue = true;
//保存结果文档
ppt.SaveToFile("AddTrendline.pptx", FileFormat.Pptx2013);
System.Diagnostics.Process.Start("AddTrendline.pptx");
}
}
}
趋势线添加效果:

2、vb.net
Imports Spire.Presentation
Imports Spire.Presentation.Charts
Namespace AddTrendline
Class Program
Private Shared Sub Main(args As String())
'创建Presentation类的实例
Dim ppt As New Presentation()
'加载PowerPoint文档
ppt.LoadFromFile("test.pptx")
'获取第一张幻灯片
Dim slide As ISlide = ppt.Slides(0)
'获取幻灯片上的第一个图表
Dim chart As IChart = DirectCast(slide.Shapes(0), IChart)
'给图表的第一个数据系列添加线性趋势线
Dim trendLine As ITrendlines = chart.Series(0).AddTrendLine(TrendlinesType.Polynomial)
'多项式趋势线
'ITrendlines trendLine = chart.Series[0].AddTrendLine(TrendlinesType.Exponential); '指数趋势线
'ITrendlines trendLine = chart.Series[0].AddTrendLine(TrendlinesType.Linear); '线性趋势线
'ITrendlines trendLine = chart.Series[0].AddTrendLine(TrendlinesType.Logarithmic); '对数趋势线
'ITrendlines trendLine = chart.Series[0].AddTrendLine(TrendlinesType.Power); '幂趋势线
'ITrendlines trendLine = chart.Series[0].AddTrendLine(TrendlinesType.MovingAverage); '移动平均趋势线
'显示公式
trendLine.displayEquation = True
'显示R平方值
trendLine.displayRSquaredValue = True
'保存结果文档
ppt.SaveToFile("AddTrendline.pptx", FileFormat.Pptx2013)
System.Diagnostics.Process.Start("AddTrendline.pptx")
End Sub
End Class
End Namespace
相关文章
C# SqlSugar批量执行SQL语句及批量更新实体对象的操作方法
SqlSugar 是一款 老牌 .NET开源ORM框架,由果糖大数据科技团队维护和更新 ,开箱即用最易上手的ORM,这篇文章主要介绍了C# SqlSugar批量执行SQL语句以及批量更新实体对象,需要的朋友可以参考下2024-07-07
C# datatable 不能通过已删除的行访问该行的信息处理方法
采用datatable.Rows[i].Delete()删除行后再访问该表时出现出现“不能通过已删除的行访问该行的信息”的错误2012-11-11
C#使用表达式树(LambdaExpression)动态更新类的属性值(示例代码)
这篇文章主要介绍了C#使用表达式树(LambdaExpression)动态更新类的属性值,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-01-01
C#使用FileInfo和DirectoryInfo类来执行文件和文件夹操作
System.IO.FileInfo 和 System.IO.DirectoryInfo 是C#中用于操作文件和文件夹的类,它们提供了许多有用的方法和属性来管理文件和文件夹,这篇文章主要介绍了C#使用FileInfo和DirectoryInfo类来执行文件和文件夹操作,需要的朋友可以参考下2023-08-08


最新评论