使用Free Spire.XLS插入图表

使用Free Spire.XLS插入图表

 

 

前言

最近在研究Office中间件,上网搜索了下,比较出名的有两个:AsposeSpire,两者功能齐全,对Office的支持趋近完善,但售价不菲。仔细搜索下,发现Spire系列还有免费版的产品,相对商业版本,在性能和文件转换功能上有缩水。通过一段时间的使用后,我发现免费版本能够满足我的大部分需求。所以写下这篇文章,和大家分享一下我的使用心得,这里我使用的是Free Spire.XLS,根据文中中的数据插入图表并保存。

 

准备

首先从CodePlexhttps://freenetexcel.codeplex.com/)上下载Free Spire.XLS,然后引用Spire.License.dllSpire.XLS.dll到工程中,如下图所示:

                                     

步骤

1.载入一个现有的Excel文档,里面已经包含生成图表所需的数据。

 


Workbook wb = new Workbook();
wb.LoadFromFile("Test.xlsx", ExcelVersion.Version2010);
Worksheet ws = wb.Worksheets[0];

 

2.创建一个条形图表,并设置图表的数据区域和位置。

 

复制代码
//Create a coulumn clustered chart
Chart chart = ws.Charts.Add(ExcelChartType.ColumnClustered);
//Set region of chart data
chart.DataRange = ws.Range["A1:C5"];
chart.SeriesDataFromRange = false;
//Set position of chart
chart.LeftColumn = 1;
chart.TopRow = 7;
chart.RightColumn = 11;
chart.BottomRow = 30;
 
复制代码

 

3. 设置图表标题格式以及两条坐标轴的格式。


复制代码
//Chart title
chart.ChartTitle = "Sales market by country";
chart.ChartTitleArea.IsBold = true;
chart.ChartTitleArea.Size = 12;
//Chart primary category axis
chart.PrimaryCategoryAxis.Title = "Country";
chart.PrimaryCategoryAxis.Font.IsBold = true;
chart.PrimaryCategoryAxis.TitleArea.IsBold = true;
//Chart primary value axis
chart.PrimaryValueAxis.Title = "Sales(in Dollars)";
chart.PrimaryValueAxis.HasMajorGridLines = false;
chart.PrimaryValueAxis.MinValue = 1000;
chart.PrimaryValueAxis.TitleArea.IsBold = true;
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = -90;
 
复制代码

 

4. 显示数据标签,并将位置设定为“居中”。

 

复制代码
//Format data labels
foreach (ChartSerie cs in chart.Series)
{
    cs.Format.Options.IsVaryColor = true;
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = true;
    cs.DataPoints.DefaultDataPoint.DataLabels.Position = DataLabelPositionType.Center;
}
复制代码

 

5. 设置图例位置为“底部”,然后保存文件到磁盘。


chart.Legend.Position = LegendPositionType.Bottom;
wb.SaveToFile("Sample.xlsx",ExcelVersion.Version2010);

 

生成的Excel文档如下图所示:

 

总结

网上不乏第三方操作excel的组件,Free Spire.XLS的优势在于免费易用,功能齐全,但最多只能处理5个工作簿,每个工作簿最多150行数据,这些是免费版本的限制。不过对于我来说已经足够了。

posted @   E-iceblue  阅读(3761)  评论(1编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示