相較於數據,圖表更能直觀的體現數據的變化趨勢。在數據表格中,同一數據值,可能同時表明不一樣的數據分類,表如今圖表中則是一個數據體如今多個數據分類標籤下。一般生成的圖表通常默認只有一種分類標籤,下面的方法將經過編程的方式來介紹在Excel中如何來生成含多層分類標籤的圖表。 html
使用工具:Spire.XLS for .NET編程
1.經過官網(https://www.e-iceblue.cn/Introduce/Spire-XLS-NET.html )下載安裝包--解壓-安裝。在程序中添加引用Spire.XLS.dll,dll文件在安裝路徑下的bin文件夾中。ide
2.經過 Nuget 官網。(http://www.nuget.org/packages/Spire.XLS/ )工具
添加引用完成後,以下圖:spa
C#示例代碼code
Step1:建立工做表orm
//建立Workbook實例,獲取工做表 Workbook wb = new Workbook(); Worksheet sheet = wb.Worksheets[0];
Step2:寫入數據到表格htm
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:合併單元格並設置單元格對齊方式blog
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"); } } }
(本文完)