填充背景色, 一般可以选择多种不同样式来填充背景, 包括填充为纯色背景, 渐变背景, 图片背景或者纹理背景等. 下面的内容将分别介绍通过 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[1];
- Chart chart = ws.Charts[0];
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[1];
- Chart chart = ws.Charts[0];
- // 设置图表的背景填充色 (纯色)
- 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");
- }
- }
- }
- View Code
[示例 2] 填充图表中的图例背景色
测试图表:
Step1: 加载文档
- // 实例化 Workbook 类的对象, 并加载测试文档
- Workbook workbook = new Workbook();
- workbook.LoadFromFile("test.xlsx");
Step2: 获取图表
- // 获取工作表中的第一个图表
- Worksheet ws = workbook.Worksheets[0];
- Spire.Xls.Chart chart = ws.Charts[0];
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[0];
- Spire.Xls.Chart chart = ws.Charts[0];
- // 填充图例背景色
- 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");
- }
- }
- }
- View Code
更多 Excel 背景色填充的方法, 可参考以下文章:
- 1. C# 设置 Excel 单元格背景色
- 2. C# 设置 Excel 表格图片背景
- (本文完)
来源: https://www.cnblogs.com/Yesi/p/10642362.html