C#如何操作Excel數(shù)據(jù)透視表
一、概述
數(shù)據(jù)透視表(Pivot Table)是一種交互式的表,可以進(jìn)行某些計(jì)算,如求和與計(jì)數(shù)等,可動態(tài)地改變透視表版面布置,也可以重新安排行號、列標(biāo)和頁字段。當(dāng)改變版面布置時,數(shù)據(jù)透視表也會按照新的布置來進(jìn)行更新,可以說是一個功能強(qiáng)大的數(shù)據(jù)分析工具。因此,本篇文章將介紹在C# 中關(guān)于Excel數(shù)據(jù)透視表的操作示例,示例內(nèi)容主要包含以下要點(diǎn):
1. 創(chuàng)建透視表
(1)創(chuàng)建數(shù)據(jù)緩存
(2)創(chuàng)建數(shù)據(jù)透視表
(3)添加行字段和列字段
(4)添加值字段
(5)設(shè)置樣式
2. 設(shè)置行折疊、展開
3. 設(shè)置字段升序、降序
4. 刪除透視表
二、準(zhǔn)備工具
Spire.XLS for .NET (可支持80余種Excel內(nèi)置的數(shù)據(jù)透視表樣式)
PS:安裝后,注意在項(xiàng)目中引用Spire.XLS.dll再進(jìn)行代碼操作,dll文件在安裝路徑下的Bin文件夾中獲取。
三、示例操作
1.創(chuàng)建透視表
//創(chuàng)建一個Workbook類實(shí)例,并加載Excel文檔 Workbook workbook = new Workbook(); workbook.LoadFromFile("test.xlsx"); //獲取第一個工作表 Worksheet sheet = workbook.Worksheets[0]; //為需要匯總和分析的數(shù)據(jù)創(chuàng)建緩存 CellRange dataRange = sheet.Range["A1:D10"]; PivotCache cache = workbook.PivotCaches.Add(dataRange); //使用緩存創(chuàng)建數(shù)據(jù)透視表,并指定透視表的名稱以及在工作表中的位置 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; //設(shè)置行字段的標(biāo)題 pivotTable.Options.RowHeaderCaption = "月份"; //添加列字段 var col1 = pivotTable.PivotFields["產(chǎn)品"]; col1.Axis = AxisTypes.Column; //設(shè)置列字段的標(biāo)題 pivotTable.Options.ColumnHeaderCaption = "產(chǎn)品"; //添加值字段 pivotTable.DataFields.Add(pivotTable.PivotFields["總產(chǎn)量"], "求和項(xiàng):總產(chǎn)量", SubtotalTypes.Sum); //設(shè)置透視表的樣式(Spire.XLS共支持80余種Excel內(nèi)置的數(shù)據(jù)透視表樣式) pivotTable.BuiltInStyle = PivotBuiltInStyles.PivotStyleDark13; //保存并打開文檔 workbook.SaveToFile("數(shù)據(jù)透視表.xlsx", ExcelVersion.Version2013); System.Diagnostics.Process.Start("數(shù)據(jù)透視表.xlsx");
測試結(jié)果:
2. 設(shè)置行折疊、展開
//創(chuàng)建Workbook類對象,加載Excel文檔 Workbook workbook = new Workbook(); workbook.LoadFromFile("數(shù)據(jù)透視表.xlsx"); //獲取數(shù)據(jù)透視表 XlsPivotTable pivotTable = workbook.Worksheets[0].PivotTables[0] as XlsPivotTable; //計(jì)算數(shù)據(jù) pivotTable.CalculateData(); //展開”月份”字段下“2”的詳細(xì)信息 (pivotTable.PivotFields["月份"] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotField).HideItemDetail("2", false); //折疊”月份”字段下“3”的詳細(xì)信息 (pivotTable.PivotFields["月份"] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotField).HideItemDetail("3", true); //保存并打開文檔 workbook.SaveToFile("折疊、展開行.xlsx", ExcelVersion.Version2013); System.Diagnostics.Process.Start("折疊、展開行.xlsx");
測試結(jié)果:
3. 設(shè)置字段排序
這里支持三種不同類型的排序,可根據(jù)需要選擇相應(yīng)的排序類型。
//創(chuàng)建一個Workbook類對象,并加載Excel文檔 Workbook workbook = new Workbook(); workbook.LoadFromFile("數(shù)據(jù)透視表.xlsx"); //獲取數(shù)據(jù)透視表 Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotTable pivotTable = workbook.Worksheets[0].PivotTables[0] as Spire.Xls.Core.Spreadsheet.PivotTables.XlsPivotTable; //對指定字段進(jìn)行升序排序 pivotTable.PivotFields[2].SortType = PivotFieldSortType.Ascending; //保存并打開文檔 workbook.SaveToFile("升序.xlsx", ExcelVersion.Version2013); System.Diagnostics.Process.Start("升序.xlsx");
測試結(jié)果:
4. 刪除透視表
刪除透視表可通過以下兩種方法:
- 根據(jù)透視表名稱刪除
- 根據(jù)透視表索引刪除
//創(chuàng)建一個工作簿,并加載Excel文檔 Workbook workbook = new Workbook(); workbook.LoadFromFile("數(shù)據(jù)透視表.xlsx"); //刪除第一張工作表上名稱為“PivotTable”的數(shù)據(jù)透視表 workbook.Worksheets[0].PivotTables.Remove("PivotTable"); //刪除第一張工作表上索引為0即第一個數(shù)據(jù)透視表 //workbook.Worksheets[0].PivotTables.RemoveAt(0); //保存文檔 workbook.SaveToFile("刪除數(shù)據(jù)透視表.xlsx", ExcelVersion.Version2013);
測試結(jié)果:
以上內(nèi)容為本次關(guān)于“Excel數(shù)據(jù)透視表的示例操作”的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- c#將Excel數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫的實(shí)現(xiàn)代碼
- C#數(shù)據(jù)導(dǎo)入/導(dǎo)出Excel文件及winForm導(dǎo)出Execl總結(jié)
- c#利用Excel直接讀取數(shù)據(jù)到DataGridView
- C#連接Excel2003和Excel2007以上版本做數(shù)據(jù)庫的連接字符串
- C#導(dǎo)出數(shù)據(jù)到Excel文件的方法
- C#操作Excel數(shù)據(jù)增刪改查示例
- C#定制Excel界面并實(shí)現(xiàn)與數(shù)據(jù)庫交互的方法
- C#將Sql數(shù)據(jù)保存到Excel文件中的方法
- C#自定義導(dǎo)出數(shù)據(jù)到Excel的類實(shí)例
- C#利用Openxml讀取Excel數(shù)據(jù)實(shí)例
相關(guān)文章
UGUI實(shí)現(xiàn)ScrollView無限滾動效果
這篇文章主要為大家詳細(xì)介紹了UGUI實(shí)現(xiàn)ScrollView無限滾動效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02c#訪問this關(guān)鍵字和base關(guān)鍵字示例
this關(guān)鍵字引用類的當(dāng)前實(shí)例。靜態(tài)成員方法中不能使用this關(guān)鍵字,this關(guān)鍵字只能在實(shí)例構(gòu)造函數(shù)、實(shí)例方法或?qū)嵗L問器中使用。base關(guān)鍵字用于從派生類中訪問基類的成員。下面學(xué)習(xí)一下這二個關(guān)鍵字的使用方法2014-01-01WinForm IP地址輸入框控件實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了WinForm IP地址輸入框控件的實(shí)現(xiàn)代碼,基于VS2010模擬windows系統(tǒng)自帶IP輸入框,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05