博客 / 詳情

返回

Excel處理控件Aspose.Cells教程:使用C#在Excel中創建環形圖

可視化比例數據(例如市場份額、費用分佈或調查結果)時,通常最好使用環形圖。本文將介紹如何使用 C# 和Aspose.Cells for .NET在 Excel 中創建環形圖。本指南提供了兩個完整的、可直接運行的代碼示例:一個基本的單系列環形圖和一個帶有自定義顏色和圖例設置的多系列環形圖,方便您立即將強大的可視化功能集成到任何 .NET 應用程序中。

Aspose.Cells官方試用版免費下載,請聯繫Aspose官方授權代理商慧都科技

加入Aspose技術交流QQ羣(1041253375),與更多小夥伴一起探討提升開發技能。

用於創建環形圖的 C# Excel 庫

Aspose.Cells for .NET是一個功能全面的 Excel 自動化庫,使開發人員無需 Microsoft Office 即可創建、修改和渲染 Excel 文件。它包含豐富的圖表 API,支持所有 Excel 原生圖表類型,包括環形圖。

Aspose.Cells之所以成為圖表生成的首選工具,其關鍵功能包括:

  • 支持所有圖表類型——從簡單的柱形圖到高級的瀑布圖和環形圖。
  • 精細化自定義- 控制系列類型、顏色、標記、數據標籤、圖例、座標軸等。
  • 高性能——在服務器端環境中高效處理大型工作簿。
  • 跨平台兼容性– 可在 .NET Framework、.NET Core、.NET 5/6/7+ 和 .NET Standard 上運行。

入門

  1. 從慧都網下載最新的 Aspose.Cells for .NET 二進制文件。

  2. 安裝NuGet 包:

    PM> Install-Package Aspose.Cells
  3. Aspose.Cells在你的 C# 項目中添加對它的引用。

現在你已經準備好通過編程方式創建環形圖了。

使用 C# 在 Excel 中創建環形圖

如何創建簡單的單系列環形圖

以下示例演示了添加環形圖所需的最少步驟,該環形圖顯示了四個產品類別的銷售分佈情況。

// 1. Create a new workbook and obtain the first worksheet.
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];

// ------------------------------------------------------------
// 2. Populate worksheet with sample data.
// ------------------------------------------------------------
//   A          B
// 1 Category   Sales
// 2 Electronics  35000
// 3 Clothing      21000
// 4 Groceries     15000
// 5 Furniture     12000
// ------------------------------------------------------------
sheet.Cells["A1"].Value = "Category";
sheet.Cells["B1"].Value = "Sales";

string[] categories = { "Electronics", "Clothing", "Groceries", "Furniture" };
double[] sales = { 35000, 21000, 15000, 12000 };

for (int i = 0; i < categories.Length; i++)
{
    sheet.Cells[i + 1, 0].Value = categories[i];
    sheet.Cells[i + 1, 1].Value = sales[i];
}

// ------------------------------------------------------------
// 3. Add a Doughnut chart object.
// ------------------------------------------------------------
// Parameters: (ChartType, upper left row, upper left column, lower right row, lower right column)
int chartIndex = sheet.Charts.Add(ChartType.Doughnut, 5, 0, 20, 8);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Sales Distribution by Category";

// ------------------------------------------------------------
// 4. Add the data series ¨C the range includes only the numeric values.
// ------------------------------------------------------------
// The first argument is the data range for the series.
// The second argument (true) indicates that the series will have a name.
int seriesIndex = chart.NSeries.Add("=Sheet1!$B$2:$B$5", true);
chart.NSeries[seriesIndex].Name = "Sales";

// ------------------------------------------------------------
// 5. Bind category (X) labels.
// ------------------------------------------------------------
chart.NSeries.CategoryData = "=Sheet1!$A$2:$A$5";

// ------------------------------------------------------------
// 6. Optional customizations.
// ------------------------------------------------------------
// Show data labels (percentage) inside the doughnut.
chart.NSeries[seriesIndex].DataLabels.Position = LabelPositionType.InsideBase;
chart.NSeries[seriesIndex].DataLabels.ShowPercentage = true;

// Set the doughnut hole size (percentage of the chart area).
chart.NSeries[seriesIndex].DoughnutHoleSize = 50; // 0 ¨C 100

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

關鍵步驟説明

目的
2 請在工作表中填寫類別名稱和數值。
3 添加一個圖表類型ChartType.Doughnut。
4 創建一個指向數值數據範圍的序列。
5 將系列鏈接到類別(標籤)範圍。
6 啓用顯示百分比的數據標籤並調整孔徑。
7 將工作簿保存到 XLSX 文件。

運行該程序會生成DoughnutChart_Simple.xlsx,其中包含一個類似於以下屏幕截圖的單系列環形圖(此純文本文檔中省略了屏幕截圖)。

如何創建帶有自定義顏色的多系列環形圖

環形圖也可以包含多個系列。下面的示例創建了一個圖表,顯示了三個部門的季度費用分佈情況。每個系列都應用了自定義顏色,以便更好地區分。

// 1. Initialize workbook and sheet.
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];

// ------------------------------------------------------------
// 2. Write sample data.
// ------------------------------------------------------------
//   A          B      C      D
// 1 Category   Q1     Q2     Q3
// 2 Marketing  5000   7000   6000
// 3 R&D        8000   9000   8500
// 4 Operations 6500   6200   7100
// ------------------------------------------------------------
sheet.Cells["A1"].Value = "Category";
sheet.Cells["B1"].Value = "Q1";
sheet.Cells["C1"].Value = "Q2";
sheet.Cells["D1"].Value = "Q3";

string[] categories = { "Marketing", "R&D", "Operations" };
double[,] values = {
    { 5000, 7000, 6000 },
    { 8000, 9000, 8500 },
    { 6500, 6200, 7100 }
};

for (int r = 0; r < categories.Length; r++)
{
    sheet.Cells[r + 1, 0].Value = categories[r];
    for (int c = 0; c < 3; c++)
    {
        sheet.Cells[r + 1, c + 1].Value = values[r, c];
    }
}

// 3. Add a multi?series Doughnut chart.
int chartIdx = sheet.Charts.Add(ChartType.Doughnut, 6, 0, 25, 10);
Chart chart = sheet.Charts[chartIdx];
chart.Title.Text = "Quarterly Expenses by Department";
chart.NSeries.CategoryData = "=Sheet1!$A$2:$A$4";

// 4. Add three series ¨C one for each quarter.
// Series 1 (Q1)
int s1 = chart.NSeries.Add("=Sheet1!$B$2:$B$4", true);
chart.NSeries[s1].Name = "Q1";
chart.NSeries[s1].DoughnutHoleSize = 60;
chart.NSeries[s1].DataLabels.ShowPercentage = true;
chart.NSeries[s1].Border.Color = Color.DarkBlue;
chart.NSeries[s1].Area.ForegroundColor = Color.LightBlue;

// Series 2 (Q2)
int s2 = chart.NSeries.Add("=Sheet1!$C$2:$C$4", true);
chart.NSeries[s2].Name = "Q2";
chart.NSeries[s2].DoughnutHoleSize = 50;
chart.NSeries[s2].DataLabels.ShowPercentage = true;
chart.NSeries[s2].Border.Color = Color.DarkGreen;
chart.NSeries[s2].Area.ForegroundColor = Color.LightGreen;

// Series 3 (Q3)
int s3 = chart.NSeries.Add("=Sheet1!$D$2:$D$4", true);
chart.NSeries[s3].Name = "Q3";
chart.NSeries[s3].DoughnutHoleSize = 40;
chart.NSeries[s3].DataLabels.ShowPercentage = true;
chart.NSeries[s3].Border.Color = Color.DarkRed;
chart.NSeries[s3].Area.ForegroundColor = Color.LightCoral;

// 5. Adjust chart appearance.
chart.Legend.Position = LegendPositionType.Right;
chart.PlotArea.Area.Formatting = FormattingType.None; // Transparent plot area.

// 6. Save the workbook.
string output = "DoughnutChart_MultiSeries.xlsx";
workbook.Save(output);
Console.WriteLine($"Workbook with multi?series Doughnut chart saved to {output}");

這段代碼演示了什麼

  • 在單個甜甜圈圖中添加多個系列(每個季度為一個系列)。
  • 每個系列只設置一次類別數據,以便重複使用相同的標籤。
  • 為每個系列自定義邊框填充顏色,以提高可讀性。
  • 為每個數據序列啓用百分比數據標籤
  • 將圖例放置在圖表的右側。

運行該程序後,生成的DoughnutChart_MultiSeries.xlsx文件將包含一個由三個同心圓環組成的環形圖,每個圓環代表一個季度的支出。

結論

使用Aspose.Cells for .NET ,在 Excel 中創建美觀的環形圖非常簡單。該庫流暢的 API 允許您填充數據、添加圖表、自定義系列顏色、顯示百分比,並將結果導出為 XLSX、PDF 或圖像格式——所有操作均無需 Microsoft Office。通過將提供的代碼片段集成到您的項目中,您可以快速可靠地交付專業且數據驅動的可視化效果。

Aspose.Cells官方試用版免費下載,請聯繫Aspose官方授權代理商慧都科技

加入Aspose技術交流QQ羣(1041253375),與更多小夥伴一起探討提升開發技能。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.