Excel 雷达图(也称为蜘蛛图或网络图)用于在不同类别中比较多个数据系列。通过在多轴坐标上绘制数据点,雷达图能够直观清晰地展示数据的均衡性与偏差情况,因此常用于绩效指标分析、市场数据对比等需要多维度比较的场景。本文将介绍如何在 C# 中实现 Excel 雷达图的创建方法。
- 在 Excel 中创建简单雷达图
- 在 Excel 中创建填充型雷达图
环境准备
在开始之前,需要在 .NET 项目中引入相关 DLL 依赖,可通过 NuGet 或下载方式添加到项目中进行引用。
cs
PM> Install-Package Spire.XLS
在 Excel 中创建简单雷达图(C#)
可以通过在工作表中添加雷达图类型来实现标准雷达图的创建,整体流程如下:
- 创建一个 Workbook 工作簿实例。
- 通过
Workbook.Worksheets[sheetIndex]获取指定工作表。 - 在单元格中填充图表数据并设置相应的单元格样式。
- 在工作表中添加雷达图类型(Radar Chart)。
- 为图表设置数据区域(Data Range)。
- 调整图表的位置,并设置图例和标题。
- 将生成的 Excel 文件保存到指定路径。
示例代码如下:
cs
using Spire.Xls;
using System.Drawing;
namespace ExcelRadarChart
{
class Program
{
static void Main(string[] args)
{
// 创建一个工作簿实例
Workbook workbook = new Workbook();
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 向指定单元格添加图表数据
sheet.Range["A1"].Value = "评分维度";
sheet.Range["A2"].Value = "沟通能力";
sheet.Range["A3"].Value = "经验";
sheet.Range["A4"].Value = "工作效率";
sheet.Range["A5"].Value = "领导力";
sheet.Range["A6"].Value = "解决问题能力";
sheet.Range["A7"].Value = "团队合作";
sheet.Range["B1"].Value = "Jonathan";
sheet.Range["B2"].NumberValue = 4;
sheet.Range["B3"].NumberValue = 3;
sheet.Range["B4"].NumberValue = 4;
sheet.Range["B5"].NumberValue = 3;
sheet.Range["B6"].NumberValue = 5;
sheet.Range["B7"].NumberValue = 5;
sheet.Range["C1"].Value = "Ryan";
sheet.Range["C2"].NumberValue = 2;
sheet.Range["C3"].NumberValue = 5;
sheet.Range["C4"].NumberValue = 4;
sheet.Range["C5"].NumberValue = 4;
sheet.Range["C6"].NumberValue = 3;
sheet.Range["C7"].NumberValue = 3;
// 设置字体样式
sheet.Range["A1:C1"].Style.Font.IsBold = true;
sheet.Range["A1:C1"].Style.Font.Size = 11;
sheet.Range["A1:C1"].Style.Font.Color = Color.White;
// 设置行高和列宽
sheet.Rows[0].RowHeight = 20;
sheet.Range["A1:C7"].Columns[0].ColumnWidth = 15;
// 设置单元格样式
sheet.Range["A1:C1"].Style.Color = Color.DarkBlue;
sheet.Range["A2:C7"].Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin;
sheet.Range["A2:C7"].Style.Borders[BordersLineType.EdgeBottom].Color = Color.DarkBlue;
sheet.Range["B1:C7"].HorizontalAlignment = HorizontalAlignType.Center;
sheet.Range["A1:C7"].VerticalAlignment = VerticalAlignType.Center;
// 在工作表中添加雷达图
Chart chart = sheet.Charts.Add(ExcelChartType.Radar);
// 设置图表位置
chart.LeftColumn = 4;
chart.TopRow = 4;
chart.RightColumn = 14;
chart.BottomRow = 29;
// 设置图表的数据区域
chart.DataRange = sheet.Range["A1:C7"];
chart.SeriesDataFromRange = false;
// 设置并格式化图表标题
chart.ChartTitle = "员工绩效考核";
chart.ChartTitleArea.IsBold = true;
chart.ChartTitleArea.Size = 14;
// 设置图例位置
chart.Legend.Position = LegendPositionType.Corner;
// 保存生成的 Excel 文件
workbook.SaveToFile("ExcelRadarChart.xlsx", ExcelVersion.Version2016);
}
}
}
在 Excel 中创建填充型雷达图(C#)
填充型雷达图是标准雷达图的一种变体,其特点是在每个数据点之间的区域填充颜色,更直观地展示数据的分布情况。使用 C# 创建填充型雷达图的步骤如下:
- 创建一个工作簿实例。
- 通过
Workbook.Worksheets[sheetIndex]获取指定工作表。 - 在单元格中添加图表数据,并设置单元格样式。
- 在工作表中添加填充型雷达图(Filled Radar Chart)。
- 设置图表的数据范围(Data Range)。
- 调整图表位置,并设置图例和标题。
- 将生成的 Excel 文件保存到指定路径。
示例代码如下:
cs
using Spire.Xls;
using System.Drawing;
namespace ExcelRadarChart
{
class Program
{
static void Main(string[] args)
{
// 创建一个工作簿实例
Workbook workbook = new Workbook();
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 在指定单元格中添加图表数据
sheet.Range["A1"].Value = "评分维度";
sheet.Range["A2"].Value = "沟通能力";
sheet.Range["A3"].Value = "经验";
sheet.Range["A4"].Value = "工作效率";
sheet.Range["A5"].Value = "领导力";
sheet.Range["A6"].Value = "解决问题能力";
sheet.Range["A7"].Value = "团队合作";
sheet.Range["B1"].Value = "Jonathan";
sheet.Range["B2"].NumberValue = 4;
sheet.Range["B3"].NumberValue = 3;
sheet.Range["B4"].NumberValue = 4;
sheet.Range["B5"].NumberValue = 3;
sheet.Range["B6"].NumberValue = 5;
sheet.Range["B7"].NumberValue = 5;
sheet.Range["C1"].Value = "Ryan";
sheet.Range["C2"].NumberValue = 2;
sheet.Range["C3"].NumberValue = 5;
sheet.Range["C4"].NumberValue = 4;
sheet.Range["C5"].NumberValue = 4;
sheet.Range["C6"].NumberValue = 3;
sheet.Range["C7"].NumberValue = 3;
// 设置字体样式
sheet.Range["A1:C1"].Style.Font.IsBold = true;
sheet.Range["A1:C1"].Style.Font.Size = 11;
sheet.Range["A1:C1"].Style.Font.Color = Color.White;
// 设置行高和列宽
sheet.Rows[0].RowHeight = 20;
sheet.Range["A1:C7"].Columns[0].ColumnWidth = 15;
// 设置单元格样式
sheet.Range["A1:C1"].Style.Color = Color.DarkBlue;
sheet.Range["A2:C7"].Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin;
sheet.Range["A2:C7"].Style.Borders[BordersLineType.EdgeBottom].Color = Color.DarkBlue;
sheet.Range["B1:C7"].HorizontalAlignment = HorizontalAlignType.Center;
sheet.Range["A1:C7"].VerticalAlignment = VerticalAlignType.Center;
// 在工作表中添加填充型雷达图
Chart chart = sheet.Charts.Add(ExcelChartType.RadarFilled);
// 设置图表位置
chart.LeftColumn = 4;
chart.TopRow = 4;
chart.RightColumn = 14;
chart.BottomRow = 29;
// 设置图表的数据范围
chart.DataRange = sheet.Range["A1:C7"];
chart.SeriesDataFromRange = false;
// 设置并格式化图表标题
chart.ChartTitle = "员工绩效考核";
chart.ChartTitleArea.IsBold = true;
chart.ChartTitleArea.Size = 14;
// 设置图例位置
chart.Legend.Position = LegendPositionType.Corner;
// 保存生成的 Excel 文件
workbook.SaveToFile("FilledRadarChart.xlsx", ExcelVersion.Version2016);
}
}
}
总结
本文演示了如何在 C# 中创建填充型雷达图,通过设置数据、样式与图表属性,实现多维数据的可视化展示。整个过程包括工作簿创建、数据填充、样式调整、图表生成以及文件保存,步骤清晰且易于实现。
填充型雷达图能够直观对比多个指标的差异,适用于绩效评估、数据分析等多维度场景,帮助更高效地呈现和理解数据。