相較於數據,圖表更能直觀的體現數據的變化趨勢。在數據表格中,同一數據值,可能同時代表不同的數據分類,表現在圖表中則是一個數據體現在多個數據分類標簽下。通常生成的圖表一般預設只有一種分類標簽,下麵的方法將通過編程的方式來介紹在Excel中如何來生成含多層分類標簽的圖表。 使用工具:Spire.XLS ...
相較於數據,圖表更能直觀的體現數據的變化趨勢。在數據表格中,同一數據值,可能同時代表不同的數據分類,表現在圖表中則是一個數據體現在多個數據分類標簽下。通常生成的圖表一般預設只有一種分類標簽,下麵的方法將通過編程的方式來介紹在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"].Text = "出口後"; sheet.Range["B1"].Text = "年份"; sheet.Range["B2"].Text = "2017年"; sheet.Range["B6"].Text = "2018年"; sheet.Range["C1"].Text = "季度"; sheet.Range["C2"].Text = "1季度"; sheet.Range["C3"].Text = "2季度"; sheet.Range["C4"].Text = "3季度"; sheet.Range["C5"].Text = "4季度"; sheet.Range["C6"].Text = "1季度"; sheet.Range["C7"].Text = "2季度"; sheet.Range["C8"].Text = "3季度"; sheet.Range["C9"].Text = "4季度"; sheet.Range["D1"].Text = "季度產量\n(萬噸)"; sheet.Range["D2"].Value = "1.56"; sheet.Range["D3"].Value = "2.3"; sheet.Range["D4"].Value = "3.21"; sheet.Range["D5"].Value = "3.5"; sheet.Range["D6"].Value = "4.8"; sheet.Range["D7"].Value = "5.2"; sheet.Range["D8"].Value = "5.79"; sheet.Range["D9"].Value = "5.58";
Step3:合併單元格並設置單元格對齊方式
sheet.Range["A2:A4"].Merge(); sheet.Range["A5:A9"].Merge(); sheet.Range["B2:B5"].Merge(); sheet.Range["B6:B9"].Merge(); sheet.Range["A1:D9"].Style.HorizontalAlignment = HorizontalAlignType.Center; sheet.Range["A1:D9"].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 = true; chart.Series[0].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; using Spire.Xls.Charts; using System.Drawing; namespace ChartWithMultiLevelCategoryLabels_XLS { class Program { static void Main(string[] args) { //創建Workbook實例,獲取工作表 Workbook wb = new Workbook(); Worksheet sheet = wb.Worksheets[0]; //寫入數據到工作表 sheet.Range["A2"].Text = "出口前"; sheet.Range["A5"].Text = "出口後"; sheet.Range["B1"].Text = "年份"; sheet.Range["B2"].Text = "2017年"; sheet.Range["B6"].Text = "2018年"; sheet.Range["C1"].Text = "季度"; sheet.Range["C2"].Text = "1季度"; sheet.Range["C3"].Text = "2季度"; sheet.Range["C4"].Text = "3季度"; sheet.Range["C5"].Text = "4季度"; sheet.Range["C6"].Text = "1季度"; sheet.Range["C7"].Text = "2季度"; sheet.Range["C8"].Text = "3季度"; sheet.Range["C9"].Text = "4季度"; sheet.Range["D1"].Text = "季度產量\n(萬噸)"; sheet.Range["D2"].Value = "1.56"; sheet.Range["D3"].Value = "2.3"; sheet.Range["D4"].Value = "3.21"; sheet.Range["D5"].Value = "3.5"; sheet.Range["D6"].Value = "4.8"; sheet.Range["D7"].Value = "5.2"; sheet.Range["D8"].Value = "5.79"; sheet.Range["D9"].Value = "5.58"; //合併單元格,設置單元格對齊方式 sheet.Range["A2:A4"].Merge(); sheet.Range["A5:A9"].Merge(); sheet.Range["B2:B5"].Merge(); sheet.Range["B6:B9"].Merge(); sheet.Range["A1:D9"].Style.HorizontalAlignment = HorizontalAlignType.Center; sheet.Range["A1:D9"].Style.VerticalAlignment = VerticalAlignType.Center; //添加柱狀圖表 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 = true; chart.Series[0].Format.LineProperties.Color = Color.BlueViolet; //設置系列分類標簽數據來源 ChartSerie serie = chart.Series[0]; serie.CategoryLabels = sheet.Range["A2:C9"]; //顯示多層分類標簽 chart.PrimaryCategoryAxis.MultiLevelLable = true; //保存文檔 wb.SaveToFile("output.xlsx", ExcelVersion.Version2013); System.Diagnostics.Process.Start("output.xlsx"); } } }View Code
(本文完)