使用旭日图可以更清晰地可视化层级信息,例如组织结构、产品类别或文件系统布局。本文将演示如何使用Aspose.Cells for .NET在 Excel 工作簿中创建旭日图。该示例完全可运行,仅需 Aspose.Cells NuGet 包,并且可以适用于任何层级数据集。
Aspose.Cells官方试用版免费下载
用于创建旭日图的 C# Excel 库
Aspose.Cells for .NET是一个功能强大的 Excel 自动化库,无需 Office 互操作即可使用。它提供了一个简洁的面向对象的 API,用于创建、修改和设置图表样式,包括 Excel 2016 中引入的旭日图。
选择 Aspose.Cells 生成旭日图的主要原因:
- 全面的 API– 完全访问图表类型、数据系列和格式选项。
- 无需安装 Excel– 可在服务器端、云端或容器环境中运行。
- 支持跨格式——保存为 XLSX、XLS、CSV、PDF、PNG 等格式。
- 高性能——高效处理大型工作簿和数据集。
入门
- 从慧都网Aspose.Cells页面下载该库。
- 从NuGet安装
PM> Install-Package Aspose.Cells
- Aspose.Cells在你的C#项目中添加对它的引用。
使用 C# 在 Excel 中创建旭日图
下面是一个完整的、独立的 C# 示例,演示如何在 Excel 中创建旭日图。
// ------------------------------------------------------------ // 1. Create a new workbook and obtain the first worksheet. // ------------------------------------------------------------ var workbook = new Workbook(); var sheet = workbook.Worksheets[0]; sheet.Name = "Hierarchy"; // ------------------------------------------------------------ // 2. Populate hierarchical data. // The data layout follows the structure required by Sunburst: // Column A ¨C Category (Level 1) // Column B ¨C Sub?Category (Level 2) // Column C ¨C Item (Level 3) // Column D ¨C Value (numeric) // ------------------------------------------------------------ string[,] data = new string[,] { // Category, Sub?Category, Item, Value { "Technology", "Hardware", "Laptop", "120" }, { "Technology", "Hardware", "Desktop", "80" }, { "Technology", "Software", "OS", "150" }, { "Technology", "Software", "Office", "100" }, { "Finance", "Banking", "Retail", "200" }, { "Finance", "Banking", "Corporate", "180" }, { "Finance", "Investments","Equity", "130" }, { "Finance", "Investments","Bonds", "90" } }; // Write the header row sheet.Cells["A1"].PutValue("Category"); sheet.Cells["B1"].PutValue("Sub?Category"); sheet.Cells["C1"].PutValue("Item"); sheet.Cells["D1"].PutValue("Value"); // Fill the data rows for (int r = 0; r < data.GetLength(0); r++) { for (int c = 0; c < data.GetLength(1); c++) { sheet.Cells[r + 1, c].PutValue(data[r, c]); } } // ------------------------------------------------------------ // 3. Add a Sunburst chart. // ------------------------------------------------------------ // The chart will be placed starting at row 12, column 0 and // will span 20 rows and 10 columns. int chartIdx = sheet.Charts.Add(ChartType.Sunburst, 12, 0, 32, 10); Chart sunburstChart = sheet.Charts[chartIdx]; sunburstChart.Title.Text = "Company Revenue by Category"; // ------------------------------------------------------------ // 4. Set the data range for the chart. // Sunburst expects the first column to contain the innermost // level (Category), and the last column to hold the numeric // values. // ------------------------------------------------------------ // A2:D9 contains the hierarchy + values. sunburstChart.SetChartDataRange("=Hierarchy!$A$2:$D$9", true); // ------------------------------------------------------------ // 5. (Optional) Customize the appearance. // ------------------------------------------------------------ // Example: Set a pastel background for the PlotArea. sunburstChart.PlotArea.Area.Formatting = FormattingType.Custom; sunburstChart.PlotArea.Area.ForegroundColor = Color.FromArgb(247, 250, 255); // Set the legend to the right side. sunburstChart.Legend.Position = LegendPositionType.Right; // ------------------------------------------------------------ // 6. Save the workbook. // ------------------------------------------------------------ string outputPath = "SunburstChart_Output.xlsx"; workbook.Save(outputPath); Console.WriteLine($"Sunburst chart created successfully: {outputPath}");关键步骤说明
| 步 | 目的 |
|---|---|
| 2 | 层级数据按列排列,其中最左边的列代表最外层的环(类别),最右边的数值列保存值。 |
| 3 | ChartType.Sunburst创建所需的图表类型。 |
| 4 | SetChartDataRange将数据范围与图表关联起来;该标志true告诉 Aspose.Cells 该范围包含类别和值。 |
| 5 | 可选的外观调整(背景填充、图例位置)。 |
| 6 | 将工作簿保存为 XLSX 格式,以便进一步处理或导出为 PDF/PNG。 |
结论
使用Aspose.Cells for .NET以编程方式创建旭日图非常简单。该库无需在服务器上运行 Microsoft Excel 即可处理数据层次结构、图表类型选择和样式设置。您可以以提供的示例为基础,根据您的领域调整数据源,并利用 Aspose 丰富的 API 生成精美且可直接导出的可视化图表。