天天看點

C# 操作Excel資料透視表

一、概述

資料透視表(Pivot Table)是一種互動式的表,可以進行某些計算,如求和與計數等,可動态地改變透視表版面布置,也可以重新安排行号、列标和頁字段。當改變版面布置時,資料透視表也會按照新的布置來進行更新,可以說是一個功能強大的資料分析工具。是以,本篇文章将介紹在C# 中關于Excel資料透視表的操作示例,示例内容主要包含以下要點:

1. 建立透視表

     (1)建立資料緩存

     (2)建立資料透視表

     (3)添加行字段和列字段

     (4)添加值字段

     (5)設定樣式

2.  設定行折疊、展開

3.  設定字段升序、降序

4.  删除透視表

二、準備工具

  • Spire.XLS for .NET (可支援80餘種Excel内置的資料透視表樣式)
C# 操作Excel資料透視表

PS:安裝後,注意在項目中引用Spire.XLS.dll再進行代碼操作,dll檔案在安裝路徑下的Bin檔案夾中擷取。

三、示例操作

1.建立透視表

C#

//建立一個Workbook類執行個體,并加載Excel文檔
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("test.xlsx");

            //擷取第一個工作表
            Worksheet sheet = workbook.Worksheets[0];

            //為需要彙總和分析的資料建立緩存
            CellRange dataRange = sheet.Range["A1:D10"];
            PivotCache cache = workbook.PivotCaches.Add(dataRange);

            //使用緩存建立資料透視表,并指定透視表的名稱以及在工作表中的位置
            PivotTable pivotTable = sheet.PivotTables.Add("PivotTable", sheet.Range["A12"], cache);

            //添加行字段
            var r1 = pivotTable.PivotFields["月份"];
            r1.Axis = AxisTypes.Row;

            var r2 = pivotTable.PivotFields["廠商"];
            r2.Axis = AxisTypes.Row;

            //設定行字段的标題
            pivotTable.Options.RowHeaderCaption = "月份";

            //添加列字段
            var col1 = pivotTable.PivotFields["産品"];
            col1.Axis = AxisTypes.Column;          

            //設定列字段的标題
            pivotTable.Options.ColumnHeaderCaption = "産品";

            //添加值字段
            pivotTable.DataFields.Add(pivotTable.PivotFields["總産量"], "求和項:總産量", SubtotalTypes.Sum);

            //設定透視表的樣式(Spire.XLS共支援80餘種Excel内置的資料透視表樣式)
            pivotTable.BuiltInStyle = PivotBuiltInStyles.PivotStyleDark13;

            //儲存并打開文檔
            workbook.SaveToFile("資料透視表.xlsx", ExcelVersion.Version2013);
            System.Diagnostics.Process.Start("資料透視表.xlsx");      

測試結果:

C# 操作Excel資料透視表

2. 設定行折疊、展開

//建立Workbook類對象,加載Excel文檔  
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("資料透視表.xlsx");

            //擷取資料透視表  
            XlsPivotTable pivotTable = workbook.Worksheets[0].PivotTables[0] as XlsPivotTable;

            //計算資料  
            pivotTable.CalculateData();

            //展開”月份”字段下“2”的詳細資訊  
            (pivotTable.PivotFields["月份"] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotField).HideItemDetail("2", false);
            //折疊”月份”字段下“3”的詳細資訊
            (pivotTable.PivotFields["月份"] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotField).HideItemDetail("3", true);

            //儲存并打開文檔  
            workbook.SaveToFile("折疊、展開行.xlsx", ExcelVersion.Version2013);
            System.Diagnostics.Process.Start("折疊、展開行.xlsx");      
C# 操作Excel資料透視表

3. 設定字段排序

這裡支援三種不同類型的排序,可根據需要選擇相應的排序類型。

C# 操作Excel資料透視表
//建立一個Workbook類對象,并加載Excel文檔  
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("資料透視表.xlsx");

            //擷取資料透視表  
            Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotTable pivotTable = workbook.Worksheets[0].PivotTables[0] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotTable;

            //對指定字段進行升序排序  
            pivotTable.PivotFields[2].SortType = PivotFieldSortType.Ascending;

            //儲存并打開文檔  
            workbook.SaveToFile("升序.xlsx", ExcelVersion.Version2013);
            System.Diagnostics.Process.Start("升序.xlsx");      
C# 操作Excel資料透視表

4. 删除透視表

删除透視表可通過以下兩種方法:

  •  根據透視表名稱删除
  •  根據透視表索引删除
//建立一個工作簿,并加載Excel文檔
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("資料透視表.xlsx");

            //删除第一張工作表上名稱為“PivotTable”的資料透視表  
            workbook.Worksheets[0].PivotTables.Remove("PivotTable");

            //删除第一張工作表上索引為0即第一個資料透視表  
            //workbook.Worksheets[0].PivotTables.RemoveAt(0);  

            //儲存文檔  
            workbook.SaveToFile("删除資料透視表.xlsx", ExcelVersion.Version2013);      
C# 操作Excel資料透視表

以上内容為本次關于“Excel資料透視表的示例操作”的全部内容,歡迎轉載(轉載請注明出處)

感謝閱讀!

繼續閱讀