C# 创建EXCEL图表并保存为图片的实例
作者:E-iceblue 发布时间:2023-03-07 07:27:24
标签:C#,创建,EXCEL图表,保存,图片
数据表格能够清晰的呈现数据信息,但是我们对于一些繁杂多变的数据想要很直观的看到数据变化走势或者数据的占比时,数据图表会更具代表性,并且在呈现数据信息上也更形象,也能获取更多纯数字信息所不能直接展现的信息。在下面的代码中,将向您展示如何通过使用免费的Free Spire XLS for .NET组件来实现。
原数据表格:
C#
using Spire.Xls;
using System.Drawing;
using System.Drawing.Imaging;
namespace CreateChart_XLS
{
class Program
{
static void Main(string[] args)
{
//创建一个Workbook类实例,加载Excel文档
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\Sample.xlsx");
//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
//设置工作表的名称
sheet.Name = "柱状图";
sheet.GridLinesVisible = false;
//创建柱状图
Chart chart = sheet.Charts.Add(ExcelChartType.ColumnClustered);
//指定用于生成图表的数据区域
chart.DataRange = sheet.Range["A2:G6"];
chart.SeriesDataFromRange = false;
//指定图表所在的位置
chart.LeftColumn = 1;
chart.TopRow = 9;
chart.RightColumn = 12;
chart.BottomRow = 26;
//设置图表的名称及字体格式
chart.ChartTitle = "上半年产品销售情况(单位:万美元)";
chart.ChartTitleArea.IsBold = true;
chart.ChartTitleArea.Size = 12;
//设置X轴坐标名称及字体格式
chart.PrimaryCategoryAxis.Title = "产品类别";
chart.PrimaryCategoryAxis.Font.IsBold = true;
chart.PrimaryCategoryAxis.TitleArea.IsBold = false;
//设置Y轴坐标名称及字体格式
chart.PrimaryValueAxis.Title = "销售额";
chart.PrimaryValueAxis.HasMajorGridLines = false;
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90;
chart.PrimaryValueAxis.MinValue = 0.5;
chart.PrimaryValueAxis.TitleArea.IsBold = false;
//设置图例的位置
chart.Legend.Position = LegendPositionType.Right;
//保存文档
workbook.SaveToFile("ColumnChart.xlsx", ExcelVersion.Version2013);
//加载生成图表后的Excel文档
workbook.LoadFromFile("ColumnChart.xlsx");
//遍历工作簿,诊断是否包含图表
Image[] images = workbook.SaveChartAsImage(sheet);
for (int i = 0; i < images.Length; i++)
{
//将图表保存为图片
images[i].Save(string.Format("img-{0}.png", i), ImageFormat.Png);
}
}
}
}
生成的图表文件及图片如下图所示:
组件获取地址:https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-NET.html
来源:http://www.cnblogs.com/Yesi/archive/2017/12/07/7999434.html


猜你喜欢
- 帧率(Frame rate)是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second,简称:FPS)或“赫
- 这是一个自定义view画圆,对于初学自定义view的小伙伴这是一个很好的帮助。 看图代码:package sjx.com.custonvie
- 配置java环境变量这里是将环境变量配置在etc/profile,即为所有用户配置JDK环境。sudo vi /etc/profile配置环
- 一、 搭建struts2环境在myeclipse下,右击项目->MyEclipse->Project Facets->in
- 1 配置多数据源时,application.yml 的有关mybatis的配置是失效的,因为他不知道配置哪一个数据源2 applicatio
- 一、雪花算法datacenterId重复问题华为云的服务器的/etc/hosts中都会生成一条 127.0.1.1 hostname的记录
- Java中可以使用关键字synchronized进行线程同步控制,实现关键资源顺序访问,避免由于多线程并发执行导致的数据不一致性等问题。sy
- 这是之前软工课设我写的java访问mysql工具类,它经过了多轮的测试,应该能够适应大多数的操作需求。比之前大二写的更鲁棒,更易用。pack
- 一、概述在日常开发中,获取一批数据后,可能需要跟据一定规则对这批数据进行排序操作。在JAVA中,动态数组ArrayList经常被用来存储数据
- MyBatis Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。Mybati
- 本文实例讲述了C#编程读取文档Doc、Docx及Pdf内容的方法。分享给大家供大家参考。具体分析如下:Doc文档:Microsoft Wor
- 假如我们有一张banner_item表,现需要通过banner_id查出所有数据(查询List)@Datapublic class Bann
- 在搭建Spring Cloud Eureka环境前先要了解整个架构的组成,常用的基础模式如下图:服务提供者:将springboot服务编写好
- 项目介绍springboot搭建的访客管理系统,针对高端基地做严格把控来访人员信息管理,用户后端可以设置多个管理员帐号,给予不同部门的管理层
- 前言在Java开发者中,字符串的拼接占用资源高往往是热议的话题.让我们深入讨论一下为什么会占用高资源。在Java中,字符串对象是不可变的,意
- 引言上文Android:实现一个自定义有限制区域的图例(角度自识别)涂鸦工具类(中)中我们已经实现了在复杂的异形区域中涂鸦,最后生成图片保存
- Java的位操作符用来操作整数基本数据类型中的单个“比特”(bit),即代进制位。而我们知道比特就是0和1,那么,位操作就是对这些数据进行基
- 用java实现循环队列的方法:1、添加一个属性size用来记录眼下的元素个数。目的是当head=rear的时候。通过size=0还是size
- 1.把springboot项目打包成三个jar包,并指定端口为14341,14342,143432.下载腾讯云免费ssl证书,解压后会出现如
- Android绘图常用方法有哪些,下面一一为大家列举:1、有关画笔(Paint)的方法Paint mPaint= new Paint();m