C#中如何在Excel工作表創(chuàng)建混合型圖表實例
在進行圖表分析的時候,我們可能需要在一張圖表呈現(xiàn)兩個或多個樣式的圖表,以便更加清晰、直觀地查看不同的數(shù)據(jù)大小和變化趨勢。在這篇文章中,我將分享C#中如何在一張圖表中創(chuàng)建不同的圖表類型,其中包括如何在同一個圖表添加第二個軸。
下面是一個簡單的excel工作表,可以看到系列3數(shù)據(jù)不同于系列1和2,這樣我們就可以繪制不同的圖表類型和不同的坐標軸來表示變化的數(shù)據(jù):

代碼片段:
步驟1:新建一個Workbook類的對象并加載要創(chuàng)建圖表的excel文件。
Workbook workbook = new Workbook(); workbook.LoadFromFile(@"E:\Visual Studio\Sample\Book1.xlsx");
步驟2:獲取工作薄的第一個工作表。
Worksheet sheet=workbook.Worksheets[0];
步驟3:工作表中添加圖表,并將A1到D5的數(shù)據(jù)設(shè)置為圖表的數(shù)據(jù)源。
Chart chart = sheet.Charts.Add(); chart.DataRange = sheet.Range["A1:D5"]; chart.SeriesDataFromRange = false;
步驟4:設(shè)置圖表位置。
chart.LeftColumn = 6; chart.TopRow = 1; chart.RightColumn = 12; chart.BottomRow = 13;
步驟5:系列1和2中運用柱狀圖,系列3運用折線圖。
var cs1 = (ChartSerie)chart.Series[0]; cs1.SerieType = ExcelChartType.ColumnClustered; var cs2 = (ChartSerie)chart.Series[1]; cs2.SerieType = ExcelChartType.ColumnClustered; var cs3 = (ChartSerie)chart.Series[2]; cs3.SerieType = ExcelChartType.LineMarkers;
步驟6:圖表中再添加一個軸,繪制出系列3的數(shù)據(jù).
chart.SecondaryCategoryAxis.IsMaxCross = true; cs3.UsePrimaryAxis = false;
步驟7:保存并運行文件。
workbook.SaveToFile("result.xlsx");
System.Diagnostics.Process.Start("result.xlsx");
這是混合型圖表的效果圖:
全部代碼:
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"E:\Visual Studio\Sample\Book1.xlsx");
Worksheet sheet = workbook.Worksheets[0];
//工作表中添加圖表并將其數(shù)據(jù)設(shè)置為圖表的數(shù)據(jù)源
Chart chart = sheet.Charts.Add();
chart.DataRange = sheet.Range["A1:D5"];
chart.SeriesDataFromRange = false;
//設(shè)置圖表位置
chart.LeftColumn = 6;
chart.TopRow = 1;
chart.RightColumn = 12;
chart.BottomRow = 13;
//根據(jù)系列運用不同的圖表類型
var cs1 = (ChartSerie)chart.Series[0];
cs1.SerieType = ExcelChartType.ColumnClustered;
var cs2 = (ChartSerie)chart.Series[1];
cs2.SerieType = ExcelChartType.ColumnClustered;
var cs3 = (ChartSerie)chart.Series[2];
cs3.SerieType = ExcelChartType.LineMarkers;
//再添加一個軸
chart.SecondaryCategoryAxis.IsMaxCross = true;
cs3.UsePrimaryAxis = false;
//保存并運行文件
workbook.SaveToFile("result.xlsx");
System.Diagnostics.Process.Start("result.xlsx");
在上面的示例中我使用的是Free Spire.XLS,上面工作表的數(shù)據(jù)你可以根據(jù)你的需求改動,步驟比較簡單,可以嘗試運行一下。而之前我也寫過如何在excel表格添加趨勢線,誤差線等文章,有需要的朋友也可以參考。謝謝瀏覽!
相關(guān)文章
c# DataTable與不同結(jié)構(gòu)實體類轉(zhuǎn)換的方法實例
這篇文章主要介紹了c#的DataTable與不同結(jié)構(gòu)實體類轉(zhuǎn)換的方法實例,在大數(shù)據(jù)量的情況下很實用,大家可以參考使用2013-11-11
淺談C#在網(wǎng)絡(luò)波動時防重復(fù)提交的方法
這篇文章主要介紹了淺談C#在網(wǎng)絡(luò)波動時防重復(fù)提交的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
C#中一個高性能異步socket封裝庫的實現(xiàn)思路分享
下面小編就為大家分享一篇C#中一個高性能異步socket封裝庫的實現(xiàn)思路,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11

