C#中如何在Excel工作表創建混合型圖表


在進行圖表分析的時候,我們可能需要在一張圖表呈現兩個或多個樣式的圖表,以便更加清晰、直觀地查看不同的數據大小和變化趨勢。在這篇文章中,我將分享C#中如何在一張圖表中創建不同的圖表類型,其中包括如何在同一個圖表添加第二個軸。

下面是一個簡單的excel工作表,可以看到系列3數據不同於系列1和2,這樣我們就可以繪制不同的圖表類型和不同的坐標軸來表示變化的數據:

代碼片段:

步驟1:新建一個Workbook類的對象並加載要創建圖表的excel文件。

Workbook workbook = new Workbook();
workbook.LoadFromFile(@"E:\Visual Studio\Sample\Book1.xlsx");

步驟2:獲取工作薄的第一個工作表。

Worksheet sheet=workbook.Worksheets[0];

步驟3:工作表中添加圖表,並將A1到D5的數據設置為圖表的數據源。

Chart chart = sheet.Charts.Add();
chart.DataRange = sheet.Range["A1:D5"];
chart.SeriesDataFromRange = false;

步驟4:設置圖表位置。

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的數據.

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];

            //工作表中添加圖表並將其數據設置為圖表的數據源
            Chart chart = sheet.Charts.Add();
            chart.DataRange = sheet.Range["A1:D5"];
            chart.SeriesDataFromRange = false;

            //設置圖表位置
            chart.LeftColumn = 6;
            chart.TopRow = 1;
            chart.RightColumn = 12;
            chart.BottomRow = 13;

            //根據系列運用不同的圖表類型
            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,上面工作表的數據你可以根據你的需求改動,步驟比較簡單,可以嘗試運行一下。而之前我也寫過如何在excel表格添加趨勢線,誤差線等文章,有需要的朋友也可以參考。謝謝瀏覽!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM