
使用漏斗圖可以更清晰地可視化轉化率、銷售渠道或任何層級數據集。本文將介紹如何使用 C# 和Aspose.Cells for .NET在 Excel 中創建漏斗圖。只需幾行代碼,即可自動生成極具視覺衝擊力的漏斗圖,並可將其導出為 XLSX、PDF 或圖像格式。
Aspose.Cells官方試用版免費下載,請聯繫Aspose官方授權代理商慧都科技
加入Aspose技術交流QQ羣(1041253375),與更多小夥伴一起探討提升開發技能。
用於創建漏斗圖的 C# Excel 庫
Aspose.Cells for .NET是一個功能強大的電子表格庫,它使開發人員能夠以編程方式創建、修改和呈現 Excel 文件。它提供了一系列豐富的圖表類型,包括漏斗圖,而漏斗圖在 Microsoft Office 原生服務器端互操作庫中並不提供。
使用 Aspose.Cells for .NET 的主要優勢:
- 功能全面的API——無需COM依賴即可完全訪問Excel功能。
- 服務器端友好——無需安裝微軟Office。
- 高性能——以最小的內存佔用處理大型工作簿。
- 多種輸出格式——保存為 XLSX、XLS、CSV、PDF、PNG 等格式。
快速入門:
-
從慧都網下載最新版本。
-
通過 NuGet 安裝:
PM> Install-Package Aspose.Cells
使用 C# 在 Excel 中創建漏斗圖

以下是兩個完整的、可運行的示例,展示瞭如何操作:
- 根據靜態數據集創建基本漏斗圖。
- 自定義漏斗圖(顏色、數據標籤和圖例)。
注意– 所有代碼片段均使用.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}");
代碼的作用
- 創建工作簿並添加代表典型銷售流程的示例數據。
- 從第 7 行第 0 列開始插入漏斗圖( )。ChartType.Funnel
- 將序列值和類別綁定到數據範圍。
- 將結果保存為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 表格的理想選擇。您可以以上述示例為基礎,並根據自己的數據源和視覺需求進行調整。
Aspose.Cells官方試用版免費下載,請聯繫Aspose官方授權代理商慧都科技
加入Aspose技術交流QQ羣(1041253375),與更多小夥伴一起探討提升開發技能。