C# 创建含多层分类标签的Excel图表
相较于数据,图表更能直观的体现数据的变化趋势。在数据表格中,同一数据值,可能同时代表不同的数据分类,表现在图表中则是一个数据体现在多个数据分类标签下。通常生成的图表一般默认只有一种分类标签,下面的方法将通过编程的方式来介绍在Excel中如何来生成含多层分类标签的图表。? ? 使用工具:Spire.XLS for .NET 1.通过官网(https://www.e-iceblue.cn/Introduce/Spire-XLS-NET.html )下载安装包--解压-安装。在程序中添加引用Spire.XLS.dll,dll文件在安装路径下的bin文件夹中。 2.通过 Nuget 官网。(http://www.nuget.org/packages/Spire.XLS/ ) 添加引用完成后,如下图: C#示例代码 ?Step1:创建工作表 //创建Workbook实例,获取工作表 Workbook wb = new Workbook(); Worksheet sheet = wb.Worksheets[0]; Step2:写入数据到表格 sheet.Range["A2"].Text = 出口前"; sheet.Range[A5出口后B1年份B22017年B62018年C1季度C21季度C32季度C43季度C54季度C6C7C8C9D1季度产量n(万吨)D2"].Value = 1.56D32.3D43.21D53.5D64.8D75.2D85.79D95.58"; Step3:合并单元格并设置单元格对齐方式 sheet.Range[A2:A4].Merge(); sheet.Range[A5:A9B2:B5B6:B9A1:D9"].Style.HorizontalAlignment = HorizontalAlignType.Center; sheet.Range["].Style.VerticalAlignment = VerticalAlignType.Center; Step4:添加图表到Excel 添加柱状图表 Chart chart = sheet.Charts.Add(ExcelChartType.LineMarkers); chart.ChartTitle = 季度产量(万吨)";设置图表标题 chart.PlotArea.Fill.FillType = ShapeFillType.NoFill; 不填充绘图区域(默认填充灰色) chart.Legend.Delete();删除图例 指定柱状图表在工作表中的位置及宽度 chart.LeftColumn = 5; chart.TopRow = 1; chart.RightColumn = 14; 设置图表系列数据来源 chart.DataRange = sheet.Range[D2:D9]; chart.SeriesDataFromRange = false; chart.Series[0].DataPoints.DefaultDataPoint.DataLabels.HasValue = true0].Format.LineProperties.Color = Color.BlueViolet; 设置系列分类标签数据来源 ChartSerie serie = chart.Series[0]; serie.CategoryLabels = sheet.Range[A2:C9"]; Step5:设置是否显示多层分类标签 chart.PrimaryCategoryAxis.MultiLevelLable = true;
Step6: 保存文档 wb.SaveToFile(output.xlsx",ExcelVersion.Version2013); ? 图表创建结果: ? 全部代码: using Spire.Xls; Spire.Xls.Charts; System.Drawing; namespace ChartWithMultiLevelCategoryLabels_XLS { class Program { static void Main(string[] args) { 创建Workbook实例,获取工作表 Workbook wb = Workbook(); Worksheet sheet = wb.Worksheets[]; 写入数据到工作表 sheet.Range[; sheet.Range[; 合并单元格,设置单元格对齐方式 sheet.Range[].Merge(); sheet.Range[ HorizontalAlignType.Center; sheet.Range["].Style.VerticalAlignment = VerticalAlignType.Center; 添加柱状图表 Chart chart = sheet.Charts.Add(ExcelChartType.LineMarkers); chart.ChartTitle = 设置图表标题 chart.PlotArea.Fill.FillType = ShapeFillType.NoFill; 不填充绘图区域(默认填充灰色) chart.Legend.Delete();删除图例 指定柱状图表在工作表中的位置及宽度 chart.LeftColumn = ; chart.TopRow = ; chart.RightColumn = ; 设置图表系列数据来源 chart.DataRange = sheet.Range[]; chart.SeriesDataFromRange = ; chart.Series[ Color.BlueViolet; 设置系列分类标签数据来源 ChartSerie serie = chart.Series[]; serie.CategoryLabels = sheet.Range[]; 显示多层分类标签 chart.PrimaryCategoryAxis.MultiLevelLable = 保存文档 wb.SaveToFile(,ExcelVersion.Version2013); System.Diagnostics.Process.Start(); } } } ? (本文完) ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |