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 表格的理想选择。您可以以上述示例为基础,并根据自己的数据源和视觉需求进行调整。

相关推荐
wtsolutions1 小时前
WPS另存为JSON,WPS导出JSON, WPS表格转换成JSON : Excel to JSON WPS插件使用指南
json·excel·wps·插件·加载项·wtsolutions
m5655bj1 小时前
Python 将 Word 文档转换为 Markdown 格式
python·c#·word
yue0082 小时前
C# 获取电脑硬件和系统信息
c#
未来之窗软件服务2 小时前
操作系统应用(三十七)C#华旭金卡身份证SDK-HX-FDX3S—东方仙盟筑基期
开发语言·c#·身份证阅读器·酒店管理系统·仙盟创梦ide
切糕师学AI2 小时前
C# 如何回收整个 EF(DbContext)对象及其相关实体的内存?
c#·gc·垃圾回收·ef
momo小菜pa2 小时前
C#--BindingList
开发语言·c#
seven_7678230982 小时前
MateChat自然语言生成UI(NLG-UI):从描述到可交互界面的自动生成
ui·交互·devui·matechat
我是唐青枫2 小时前
C# 列表模式(List Patterns)深度解析:模式匹配再进化!
c#·.net
crary,记忆3 小时前
如何理解 React的UI渲染
前端·react.js·ui·前端框架