Excel处理控件Aspose.Cells教程:使用C#在Excel中创建漏斗图

使用漏斗图可以更清晰地可视化转化率、销售渠道或任何层级数据集。本文将介绍如何使用 C# 和**Aspose.Cells for .NET**在 Excel 中创建漏斗图。只需几行代码,即可自动生成极具视觉冲击力的漏斗图,并可将其导出为 XLSX、PDF 或图像格式。

Aspose.Cells官方试用版免费下载

用于创建漏斗图的 C# Excel 库

Aspose.Cells for .NET 是一个功能强大的电子表格库,它使开发人员能够以编程方式创建、修改和呈现 Excel 文件。它提供了一系列丰富的图表类型,包括漏斗图,而漏斗图在 Microsoft Office 原生服务器端互操作库中并不提供。

使用**Aspose.Cells for .NET** 的主要优势:

  • **功能全面的API------**无需COM依赖即可完全访问Excel功能。
  • 服务器端友好------无需安装微软Office。
  • 高性能------以最小的内存占用处理大型工作簿。
  • 多种输出格式------保存为 XLSX、XLS、CSV、PDF、PNG 等格式。

快速入门:

  1. 从慧都网下载最新版本。

  2. 通过 NuGet 安装:

复制代码
PM> Install-Package Aspose.Cells

使用 C# 在 Excel 中创建漏斗图

以下是两个完整的、可运行的示例,展示了如何操作:

  1. 根据静态数据集创建基本漏斗图。
  2. 自定义漏斗图(颜色、数据标签和图例)。

注意 -- 所有代码片段均使用**.NET 6.0**或更高版本编译,目标框架为net6.0(或任何更高版本)。请将 `<folder>` 替换outputPath为您计算机上的相应文件夹。

示例 1 -- 基本漏斗图
复制代码
// ------------------------------------------------------------------
// 1. Create a new workbook and obtain the first worksheet.
// ------------------------------------------------------------------
var workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "FunnelData";

// ------------------------------------------------------------------
// 2. Populate worksheet with sample funnel data.
//    A column ¨C Stage description
//    B column ¨C Number of items at each stage
// ------------------------------------------------------------------
//    A          B
// 1  Stage      Count
// 2  Lead       5000
// 3  Qualified  3200
// 4  Proposal   2100
// 5  Negotiation1500
// 6  Closed     950
// ------------------------------------------------------------------
sheet.Cells["A1"].PutValue("Stage");
sheet.Cells["B1"].PutValue("Count");

string[] stages = { "Lead", "Qualified", "Proposal", "Negotiation", "Closed" };
int[] counts = { 5000, 3200, 2100, 1500, 950 };

for (int i = 0; i < stages.Length; i++)
{
    sheet.Cells[i + 1, 0].PutValue(stages[i]);   // Column A
    sheet.Cells[i + 1, 1].PutValue(counts[i]);   // Column B
}

// ------------------------------------------------------------------
// 3. Add a Funnel chart object.
// ------------------------------------------------------------------
int chartIndex = sheet.Charts.Add(ChartType.Funnel, 7, 0, 25, 12);
Chart funnelChart = sheet.Charts[chartIndex];
funnelChart.Title.Text = "Sales Funnel";

// ------------------------------------------------------------------
// 4. Define the data range for the chart.
//    Series data ¨C B2:B6 (counts)
//    Category data ¨C A2:A6 (stages)
// ------------------------------------------------------------------
funnelChart.NSeries.Add("=FunnelData!$B$2:$B$6", true);
funnelChart.NSeries.CategoryData = "=FunnelData!$A$2:$A$6";

// ------------------------------------------------------------------
// 5. Save the workbook.
// ------------------------------------------------------------------
string outputPath = "FunnelChart_Basic.xlsx";
workbook.Save(outputPath);
Console.WriteLine($"Workbook saved to {outputPath}");

代码的作用

  1. 创建工作簿并添加代表典型销售流程的示例数据。
  2. 从第 7 行第 0 列开始插入漏斗图( )。ChartType.Funnel
  3. 将序列值和类别绑定到数据范围。
  4. 将结果保存为FunnelChart_Basic.xlsx.

在 Microsoft Excel 中打开生成的文件------您将看到一个清晰的漏斗图,该图直观地显示了每个阶段的下降情况。

示例 2 -- 自定义漏斗图(颜色、数据标签、图例)
复制代码
// ------------------------------------------------------------------
// 1. Prepare workbook and data.
// ------------------------------------------------------------------
var wb = new Workbook();
Worksheet ws = wb.Worksheets[0];
ws.Name = "Pipeline";

ws.Cells["A1"].PutValue("Stage");
ws.Cells["B1"].PutValue("Leads");

string[] stageNames = { "Awareness", "Interest", "Consideration", "Intent", "Purchase" };
int[] leadCounts = { 8000, 5600, 3800, 2100, 950 };

for (int i = 0; i < stageNames.Length; i++)
{
    ws.Cells[i + 1, 0].PutValue(stageNames[i]);
    ws.Cells[i + 1, 1].PutValue(leadCounts[i]);
}

// ------------------------------------------------------------------
// 2. Insert a Funnel chart.
// ------------------------------------------------------------------
int idx = ws.Charts.Add(ChartType.Funnel, 8, 0, 28, 13);
Chart funnel = ws.Charts[idx];
funnel.Title.Text = "Marketing Funnel";

// Bind series and categories.
funnel.NSeries.Add("=Pipeline!$B$2:$B$6", true);
funnel.NSeries.CategoryData = "=Pipeline!$A$2:$A$6";

// ------------------------------------------------------------------
// 3. Apply custom colors to each funnel slice.
// ------------------------------------------------------------------
Color[] sliceColors = {
    Color.FromArgb(91, 155, 213),   // Awareness
    Color.FromArgb(237, 125, 49),   // Interest
    Color.FromArgb(165, 165, 165), // Consideration
    Color.FromArgb(255, 192, 0),   // Intent
    Color.FromArgb(112, 173, 71)   // Purchase
};

for (int i = 0; i < funnel.NSeries[0].Points.Count; i++)
{
    funnel.NSeries[0].Points[i].Area.ForegroundColor = sliceColors[i];
    funnel.NSeries[0].Points[i].Area.Formatting = FormattingType.Custom;
}

// ------------------------------------------------------------------
// 4. Show data labels (value + percentage).
// ------------------------------------------------------------------
funnel.NSeries[0].DataLabels.ShowValue = true;
funnel.NSeries[0].DataLabels.ShowPercentage = true;
funnel.NSeries[0].DataLabels.Position = LabelPositionType.Center;

// ------------------------------------------------------------------
// 5. Adjust legend ¨C place it at the bottom and use a horizontal layout.
// ------------------------------------------------------------------
funnel.ShowLegend = true;
funnel.Legend.Position = LegendPositionType.Bottom;

// ------------------------------------------------------------------
// 6. Save the workbook.
// ------------------------------------------------------------------
string outFile = "FunnelChart_Customized.xlsx";
wb.Save(outFile);
Console.WriteLine($"Customized funnel chart saved to {outFile}");

定制亮点

  • 颜色--每个漏斗切片都使用不同的前景色Area.ForegroundColor。FormattingType.Custom
  • 数据标签-- 启用后,数值和百分比显示将居中显示在每个切片内。
  • 图例-- 位于底部,采用水平布局,以便更好地阅读。

点击FunnelChart_Customized.xlsx查看完整样式的漏斗图,适用于演示或报告。

结论

**使用Aspose.Cells for .NET**创建漏斗图非常简单,只需几行 C# 代码即可。该库提供对数据绑定、样式和导出选项的全面控制,使其成为服务器端报表、仪表板和自动生成 Excel 表格的理想选择。您可以以上述示例为基础,并根据自己的数据源和视觉需求进行调整。

相关推荐
sg_knight1 天前
设计模式实战:状态模式(State)
python·ui·设计模式·状态模式·state
周杰伦fans1 天前
C# required 关键字详解
开发语言·网络·c#
黄思搏1 天前
基于标注平台数据的 Unity UI 自动化构建工作流设计与工程实践
ui·unity·蓝湖·vectoui
小樱花的樱花1 天前
1 项目概述
开发语言·c++·qt·ui
2301_822703201 天前
开源鸿蒙跨平台Flutter开发:跨端图形渲染引擎的类型边界与命名空间陷阱:以多维雷达图绘制中的 dart:ui 及 StrokeJoin 异常为例
算法·flutter·ui·开源·图形渲染·harmonyos·鸿蒙
游乐码1 天前
c#ArrayList
开发语言·c#
开开心心就好1 天前
支持自定义名单的实用随机抽签工具
windows·计算机视觉·计算机外设·excel·散列表·启发式算法·csdn开发云
唐青枫1 天前
C#.NET Monitor 与 Mutex 深入解析:进程内同步、跨进程互斥与使用边界
c#·.net
周杰伦fans1 天前
cad文件选项卡不见了怎么办?
c#
llm大模型算法工程师weng1 天前
Python敏感词检测方案详解
开发语言·python·c#