C# 填充Excel图表、图例背景色
填充背景色,一般可以选择多种不同样式来填充背景,包括填充为纯色背景、渐变背景、图片背景或者纹理背景等。下面的内容将分别介绍通过C#来设置Excel中图表背景色、以及图表中的图例背景色的方法。
使用工具:Spire.XLS for .NET
dll引用:下载安装后,注意在程序中添加引用Spire.Xls.dll(dll文件在安装路径下的bin文件夹中获取)

【示例1】填充图表背景色
测试文档如下:

Step1:加载文档
//实例化Workbook类的对象
Workbook workbook = new Workbook();
//加载测试文档
workbook.LoadFromFile("sample.xlsx");
Step2:获取图表
//获取第一个工作表中的第一个图表
Worksheet ws = workbook.Worksheets[];
Chart chart = ws.Charts[];
Step3:填充图表背景色(纯色)
//设置图表的背景填充色(纯色)
chart.ChartArea.Fill.ForeColor = Color.LightSkyBlue;
////设置图表绘图区域的背景填充色(纯色)
///chart.PlotArea.ForeGroundColor =System.Drawing.Color.LightYellow;
Step4:加载图片填充图表背景
// 加载图片,填充整个图表区域
chart.ChartArea.Fill.CustomPicture(Image.FromFile("tp.png"), "None");
//设置绘图区域的图片填充的透明度
chart.PlotArea.Fill.Transparency = 0.8;
////加载图片,仅填充图表中的绘图区域
//chart.PlotArea.Fill.CustomPicture(Image.FromFile("tp.png"), "None");
Step5:保存文档
workbook.SaveToFile("result.xlsx", ExcelVersion.Version2010);
纯色背景色设置效果:
1.填充整个图表

2.填充图表中的绘图区域

图片填充效果:
1.填充整个图表

2.填充图表中的绘图区域

全部代码:
using Spire.Xls;
using Spire.Xls.Core.Spreadsheet.Charts;
using System.Drawing; namespace FillChartWithImg_XLS
{
class Program
{
static void Main(string[] args)
{
//实例化Workbook类的对象
Workbook workbook = new Workbook();
//加载测试文档
workbook.LoadFromFile("sample.xlsx"); //获取第一个工作表中的第一个图表
Worksheet ws = workbook.Worksheets[];
Chart chart = ws.Charts[]; //设置图表的背景填充色(纯色)
chart.ChartArea.Fill.ForeColor = Color.LightSkyBlue;
//设置图表绘图区域的背景填充色(纯色)
//chart.PlotArea.ForeGroundColor = System.Drawing.Color.LightYellow; //// 加载图片,填充整个图表区域
//chart.ChartArea.Fill.CustomPicture(Image.FromFile("tp.png"), "None");
////设置绘图区域的图片填充的透明度
//chart.PlotArea.Fill.Transparency = 0.8; ////加载图片,仅填充图表中的绘图区域
//chart.PlotArea.Fill.CustomPicture(Image.FromFile("tp.png"), "None"); //保存文档
workbook.SaveToFile("result3.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("result3.xlsx");
}
}
}
【示例2】填充图表中的图例背景色
测试图表:

Step1:加载文档
//实例化Workbook类的对象,并加载测试文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("test.xlsx");
Step2:获取图表
//获取工作表中的第一个图表
Worksheet ws = workbook.Worksheets[];
Spire.Xls.Chart chart = ws.Charts[];
Step3:单色填充图例背景
//填充图例背景色
XlsChartFrameFormat x = chart.Legend.FrameFormat as XlsChartFrameFormat;
//单色填充
x.Fill.FillType = ShapeFillType.SolidColor;
x.ForeGroundColor = Color.Gainsboro;
Step4:渐变色填充图例背景
//渐变色填充
x.Fill.FillType = ShapeFillType.Gradient;
x.ForeGroundColor = Color.AliceBlue;
x.BackGroundColor = Color.Bisque;
Step5:纹理填充图例背景
//纹理填充
x.Fill.FillType = ShapeFillType.Texture;
x.Fill.Texture = GradientTextureType.Bouquet;
Step6:加载图片填充图例背景
//图片填充
x.Fill.CustomPicture("img.png");
Step7:保存文档
workbook.SaveToFile("output.xlsx", ExcelVersion.Version2010);
图例背景色填充效果:
1.单色填充效果

2.渐变填充效果

3.纹理填充效果

4.图片填充效果

全部代码:
using Spire.Xls;
using Spire.Xls.Charts;
using Spire.Xls.Core.Spreadsheet.Charts;
using System.Drawing; namespace SetFontOfLegendInChart_XLS
{
class Program
{
static void Main(string[] args)
{
//实例化Workbook类的对象,并加载测试文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("test.xlsx"); //获取工作表中的第一个图表
Worksheet ws = workbook.Worksheets[];
Spire.Xls.Chart chart = ws.Charts[]; //填充图例背景色
XlsChartFrameFormat x = chart.Legend.FrameFormat as XlsChartFrameFormat;
//单色填充
x.Fill.FillType = ShapeFillType.SolidColor;
x.ForeGroundColor = Color.Gainsboro; ////渐变色填充
//x.Fill.FillType = ShapeFillType.Gradient;
//x.ForeGroundColor = Color.AliceBlue;
//x.BackGroundColor = Color.Bisque; ////纹理填充
//x.Fill.FillType = ShapeFillType.Texture;
//x.Fill.Texture = GradientTextureType.Bouquet; ////图片填充
//x.Fill.CustomPicture("img.png"); //保存文档
workbook.SaveToFile("output.xlsx", ExcelVersion.Version2010);
System.Diagnostics.Process.Start("output.xlsx");
}
}
}
更多Excel背景色填充的方法,可参考以下文章:
(本文完)
转载请注明出处!
C# 填充Excel图表、图例背景色的更多相关文章
- vba控制图表,excel图表,一键完成
来源http://club.excelhome.net/thread-1417686-1-1.html 官方教程链接 https://docs.microsoft.com/zh-cn/office/v ...
- 【原创】.NET读写Excel工具Spire.Xls使用(5)重量级的Excel图表功能
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...
- JAVA生成EXCEL图表
跟据客户的要求,需要开发一套包括图形的报表,还需要导出WORD 图表需要这样: 这样: 这样: 还有这样: 接下来是实现思路: 以往用的最多的就是JFreechart,手上也有实现各种图形的资源,但是 ...
- 《Excel图表之道》读书笔记
一.突破常规的作图方法 突破Excel的默认颜色 非数据元素用淡色 突破Excel的图表布局 图表要素:主标题.副标题.图例.绘图.脚注 竖向构图 标明数据来源.图表注释.坐标轴截断符号 专业的水蓝色 ...
- EXCEL 图表 只在拐点的时候显示数字
EXCEL图表只在折线的拐点显示数值,中间不需要显示.同时往下拐的,显示在上方,往上的显示在下方,这样数值不会挡住线. 首先,做一些模拟数据 因为起点和终点数值必须显示,所以单元格,C2 D2 C19 ...
- C# 填充Excel
1.添加引用 Microsoft.Office.Interop.Excel; 2.使用命名空间 using Microsoft.Office.Interop.Excel; 3.填充EXCEL单元格方法 ...
- MSChart 设置饼图颜色 图例背景色 图例显示位置
chartField.Series.Clear(); chartField.ChartAreas.Clear(); chartField.Legends.C ...
- Excel图表转成图片
关于excel 图表转成图片 知识点:excel 生成的图表不是图片 尝试. 通过Java调用POI接口挺难把excel生成的图表转成图片导出来 ps. 其它生成图表的工具,如jfre ...
- [办公自动化]如何让excel图表标签中显示最新值数据
同事做了一张excel图表,希望最新的数据显示数据标签,其他都不显示.并且当单元格的数据新增加时,这个标签要能自动更新. 这里需要用到公式,获取到这个最新值.在b2输入公式=lookup(9e+307 ...
随机推荐
- arcEngine开发之IMap、ILayer、IFeatureLayer和IFeatureClass关系
刚开时学习 Engine 开发时,对于这几个接口之间的关系总是理不清,因此写下这篇文章做个总结. 是什么 在 engine 开发中,我觉得使用过程中应该将每个接口对应到 ArcMap 中的具体事物中, ...
- [CVPR2017] Weakly Supervised Cascaded Convolutional Networks论文笔记
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Helvetica Neue"; color: #042eee } p. ...
- java多线程对CountDownLatch的使用实例
介绍 CountDownLatch是一个同步辅助类,它允许一个或多个线程一直等待直到其他线程执行完毕才开始执行. 用给定的计数初始化CountDownLatch,其含义是要被等待执行完的线程个数. 每 ...
- synchronized与Lock的区别
两者的区别分类对比: 类别 synchronized Lock 存在层次 Java的关键字,在jvm层面上 是一个类 锁的释放 1.以获取锁的线程执行完同步代码,释放锁 2.线程执行发生异常,jvm会 ...
- Scrapy爬虫框架第八讲【项目实战篇:知乎用户信息抓取】--本文参考静觅博主所写
思路分析: (1)选定起始人(即选择关注数和粉丝数较多的人--大V) (2)获取该大V的个人信息 (3)获取关注列表用户信息 (4)获取粉丝列表用户信息 (5)重复(2)(3)(4)步实现全知乎用户爬 ...
- JavaScript 设计模式之----单体(单例)模式
设计模式之--单体(单例)模式 1.介绍 从本章开始,我们会逐步介绍在JavaScript里使用的各种设计模式实现,在这里我不会过多地介绍模式本身的理论,而只会关注实现.OK,正式开始. 在传统开发工 ...
- java-直接选择排序
直接选择排序是一种简单的排序方法,它每次从当前待排序的区间中选择出最小的元素,把该元素与该区间的第一个元素交换. 第一次从a[0]~a[n-1]中选取最小值,与a0]交换,第二次从a[1]~a[n-1 ...
- 关于Kafka配额的讨论(1)
Kafka自0.9.0.0版本引入了配额管理(quota management),旨在broker端对clients发送请求进行限流(throttling).目前Kafka支持两大类配额管理: 网络带 ...
- classpath和filepath
******************************** java中的相对路径和绝对路径 ******************************** 相对路径(其实就是编译后的路径) - ...
- 「WC 2018」州区划分
题目大意: 给一个无向图$G(V,E)$满足$|V|<=21$,对于某一种将$G(V,E)$划分为k个的有序集合方案,若每一个子集$G_i(V_i,E_i)$,$E_i=\{(x,y)|x\in ...