C#中如何在Excel工作表創(chuàng)建混合型圖表實(shí)例
在進(jìn)行圖表分析的時(shí)候,我們可能需要在一張圖表呈現(xiàn)兩個(gè)或多個(gè)樣式的圖表,以便更加清晰、直觀地查看不同的數(shù)據(jù)大小和變化趨勢(shì)。在這篇文章中,我將分享C#中如何在一張圖表中創(chuàng)建不同的圖表類型,其中包括如何在同一個(gè)圖表添加第二個(gè)軸。
下面是一個(gè)簡(jiǎn)單的excel工作表,可以看到系列3數(shù)據(jù)不同于系列1和2,這樣我們就可以繪制不同的圖表類型和不同的坐標(biāo)軸來表示變化的數(shù)據(jù):
代碼片段:
步驟1:新建一個(gè)Workbook類的對(duì)象并加載要?jiǎng)?chuàng)建圖表的excel文件。
Workbook workbook = new Workbook(); workbook.LoadFromFile(@"E:\Visual Studio\Sample\Book1.xlsx");
步驟2:獲取工作薄的第一個(gè)工作表。
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中運(yùn)用柱狀圖,系列3運(yùn)用折線圖。
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:圖表中再添加一個(gè)軸,繪制出系列3的數(shù)據(jù).
chart.SecondaryCategoryAxis.IsMaxCross = true; cs3.UsePrimaryAxis = false;
步驟7:保存并運(yùn)行文件。
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ù)系列運(yùn)用不同的圖表類型 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; //再添加一個(gè)軸 chart.SecondaryCategoryAxis.IsMaxCross = true; cs3.UsePrimaryAxis = false; //保存并運(yùn)行文件 workbook.SaveToFile("result.xlsx"); System.Diagnostics.Process.Start("result.xlsx");
在上面的示例中我使用的是Free Spire.XLS,上面工作表的數(shù)據(jù)你可以根據(jù)你的需求改動(dòng),步驟比較簡(jiǎn)單,可以嘗試運(yùn)行一下。而之前我也寫過如何在excel表格添加趨勢(shì)線,誤差線等文章,有需要的朋友也可以參考。謝謝瀏覽!
相關(guān)文章
C# 使用 GDI+ 實(shí)現(xiàn)添加中心旋轉(zhuǎn)(任意角度)的文字
這篇文章主要介紹了C# 使用 GDI+ 實(shí)現(xiàn)添加中心旋轉(zhuǎn)(任意角度)的文字,需要的朋友可以參考下2018-04-04C# WINFORM 強(qiáng)制讓窗體獲得焦點(diǎn)的方法代碼
C# WINFORM 強(qiáng)制讓窗體獲得焦點(diǎn)的方法代碼,需要的朋友可以參考一下2013-04-04C#編程實(shí)現(xiàn)四舍五入、向上及下取整的方法
這篇文章主要介紹了C#編程實(shí)現(xiàn)四舍五入、向上及下取整的方法,涉及C#數(shù)學(xué)運(yùn)算的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11C#對(duì)多個(gè)集合和數(shù)組的操作方法(合并,去重,判斷)
下面小編就為大家?guī)硪黄狢#對(duì)多個(gè)集合和數(shù)組的操作方法(合并,去重,判斷)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12C# winform編程中響應(yīng)回車鍵的實(shí)現(xiàn)代碼
這篇文章主要介紹了C# winform編程中響應(yīng)回車鍵的實(shí)現(xiàn)代碼,既在窗口上響應(yīng)回車鍵事件的方法,需要的朋友可以參考下2014-08-08Winform項(xiàng)目中使用FastReport.Net報(bào)表控件
這篇文章介紹了Winform項(xiàng)目中使用FastReport.Net報(bào)表控件的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06C#實(shí)現(xiàn)兩個(gè)richtextbox控件滾動(dòng)條同步滾動(dòng)的簡(jiǎn)單方法
這篇文章主要給大家介紹了C#實(shí)現(xiàn)兩個(gè)richtextbox控件滾動(dòng)條同步滾動(dòng)的簡(jiǎn)單方法,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-05-05