在日常的報表開發和數據分析中,圖表的直觀可視化效果遠比單純的數字更容易幫助我們理解和呈現數據。通過圖表,管理層可以快速洞察趨勢,業務人員可以輕鬆比較不同維度的數據。
使用 C#,我們無需依賴 Microsoft Office,即可直接在 Excel 文件中創建豐富的圖表類型。本文將演示如何在 同一個工作表中基於示例數據創建 柱狀圖、折線圖和餅圖,並説明每類圖表的應用場景,幫助你全面掌握 Excel 圖表的生成方法。
本文示例基於免費的 Free Spire.XLS for .NET,NuGet 安裝命令如下:
Install-Package FreeSpire.XLS
1. 初始化工作簿和工作表
using Spire.Xls;
using Spire.Xls.Charts;
using System.Drawing;
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "銷售數據";
説明:
Workbook表示 Excel 工作簿。Worksheet表示工作表,所有數據和圖表將在該表中完成。
2. 插入示例數據
// 添加表頭
sheet.Range["B2"].Text = "產品";
sheet.Range["C2"].Text = "銷量";
sheet.Range["D2"].Text = "利潤";
// 插入數據
string[] products = { "手機", "電腦", "耳機", "平板", "手錶" };
int[] sales = { 500, 300, 450, 200, 150 };
int[] profits = { 120, 90, 80, 60, 30 };
for (int i = 0; i < products.Length; i++)
{
sheet.Range[i + 3, 2].Text = products[i];
sheet.Range[i + 3, 3].NumberValue = sales[i];
sheet.Range[i + 3, 4].NumberValue = profits[i];
}
説明:
- 數據涵蓋了 產品、銷量、利潤,是常見的業務數據場景。
- 這些數據將作為圖表的基礎來源。
3. 創建柱狀圖(比較不同產品銷量)
Chart chart1 = sheet.Charts.Add(ExcelChartType.ColumnClustered);
chart1.DataRange = sheet.Range["B2:C7"];
chart1.SeriesDataFromRange = false;
chart1.TopRow = 9;
chart1.BottomRow = 25;
chart1.LeftColumn = 2;
chart1.RightColumn = 8;
chart1.ChartTitle = "各產品銷量對比";
chart1.ChartTitleArea.Font.Size = 14;
chart1.PrimaryCategoryAxis.Title = "產品";
chart1.PrimaryValueAxis.Title = "銷量";
應用場景:
- 柱狀圖用於橫向比較不同產品的銷量差異,適合展示分類數據。
4. 創建折線圖(分析銷量和利潤趨勢)
Chart chart2 = sheet.Charts.Add(ExcelChartType.LineMarkers);
chart2.DataRange = sheet.Range["B2:D7"];
chart2.SeriesDataFromRange = false;
chart2.TopRow = 9;
chart2.BottomRow = 25;
chart2.LeftColumn = 9;
chart2.RightColumn = 15;
chart2.ChartTitle = "銷量與利潤趨勢";
chart2.ChartTitleArea.Font.Size = 14;
chart2.PrimaryCategoryAxis.Title = "產品";
chart2.PrimaryValueAxis.Title = "數值";
應用場景:
- 折線圖適合展示兩個指標(銷量與利潤)的變化趨勢,幫助觀察波動和對比關係。
5. 創建餅圖(分析利潤佔比)
Chart chart3 = sheet.Charts.Add(ExcelChartType.Pie);
chart3.DataRange = sheet.Range["B2:B7,D2:D7"];
chart3.SeriesDataFromRange = false;
chart3.TopRow = 27;
chart3.BottomRow = 45;
chart3.LeftColumn = 2;
chart3.RightColumn = 8;
chart3.ChartTitle = "利潤佔比";
chart3.ChartTitleArea.Font.Size = 14;
應用場景:
- 餅圖常用於展示比例關係,比如利潤在各產品中的佔比情況,直觀顯示結構構成。
6. 保存文件
workbook.SaveToFile("銷售數據圖表.xlsx", ExcelVersion.Version2016);
説明:
保存後即可在 Excel 中查看帶有數據和圖表的報表。
7. 效果展示(示例圖表)
運行上述代碼後生成的 Excel 文件包含以下圖表:
- 柱狀圖:清晰對比不同產品銷量。
- 折線圖:展示銷量和利潤隨產品的變化趨勢。
- 餅圖:直觀反映利潤的比例分佈。
8. 關鍵類、方法與屬性總結
| 功能 | 關鍵類/屬性 | 説明 |
|---|---|---|
| 工作簿 | Workbook |
表示 Excel 文件容器 |
| 工作表 | Worksheet |
操作數據和圖表的載體 |
| 數據區域 | Worksheet.Range |
提供數據來源 |
| 圖表 | Worksheet.Charts.Add() |
添加不同類型圖表 |
| 圖表類型 | ExcelChartType |
支持柱狀圖、折線圖、餅圖等 |
| 數據綁定 | Chart.DataRange |
指定圖表數據範圍 |
| 標題設置 | Chart.ChartTitle |
設置圖表標題 |
| 軸標題 | PrimaryCategoryAxis.Title / PrimaryValueAxis.Title |
設置橫縱軸標題 |
通過本文的示例,你可以在 C# 中 自動生成 Excel 報表,並結合圖表讓數據更直觀、更易理解。
想要學習更多 C# 操作 Excel 的技巧,可以參考 Spire.XLS for .NET 官方教程。