使用Python在Excel工作表中創(chuàng)建數(shù)據(jù)透視表的方法
引言
在數(shù)據(jù)處理和分析工作中,Excel作為一個廣泛使用的工具,提供了強(qiáng)大的功能來管理和解析數(shù)據(jù)。當(dāng)面對大量復(fù)雜的數(shù)據(jù)集時,為了更高效地總結(jié)、分析和展示數(shù)據(jù),創(chuàng)建數(shù)據(jù)透視表成為一種不可或缺的方法。通過使用Python這樣的編程語言與Excel工作表結(jié)合,我們能夠自動化數(shù)據(jù)透視表的生成過程,不僅節(jié)省了時間,還能確保每次操作的一致性和準(zhǔn)確性。本文將介紹如何使用Python在Excel工作表中創(chuàng)建數(shù)據(jù)透視表。
本文所使用的方法需要用到的Spire.XLS for Python,PyPI:pip install spire.xls
。
用Python在Excel工作表中創(chuàng)建數(shù)據(jù)透視表
在Excel工作表匯總創(chuàng)建數(shù)據(jù)透視表時,我們需要先用指定的單元格范圍通過Workbook.PivotCaches.Add(CellRange)
方法創(chuàng)建一個XlsPivotCache
對象,然后再使用Worksheet.PivotTables.Add(name: string, location: CellRange, XlsPivotCache)
基于XlsPivotCache
對象創(chuàng)建數(shù)據(jù)透視表。創(chuàng)建好之后,還需要對數(shù)據(jù)透視表的行字段、列字段、值字段等進(jìn)行設(shè)置,最后制作成一個完善的數(shù)據(jù)透視表。以下是操作步驟示例:
- 導(dǎo)入所需的類
Workbook
,AxisTypes
,PivotBuiltInStyles
,SubtotalTypes
, 和PivotAutoFomatTypes
。 - 創(chuàng)建
Workbook
類的實(shí)例。 - 使用
Workbook.LoadFromFile
方法載入指定路徑的現(xiàn)有Excel文件到工作簿實(shí)例中。 - 使用
Workbook.Worksheets.get_Item
方法獲取工作簿中的一個工作表。 - 定義數(shù)據(jù)源范圍:通過
Worksheet.Range.get_Item
方法選取單元格區(qū)域。 - 使用
Workbook.PivotCaches.Add
方法添加數(shù)據(jù)源范圍到工作簿的緩存中創(chuàng)建一個XlsPivotCache
對象。 - 在當(dāng)前工作表中定義位置并使用
Worksheet.PivotTables.Add
方法以及之前創(chuàng)建的XlsPivotCache
對象創(chuàng)建一個數(shù)據(jù)透視表。數(shù)據(jù)透視表可創(chuàng)建在其他工作表中。 - 為數(shù)據(jù)透視表添加行字段,通過
XlsPivotTable.PivotFields.get_Item
方法選擇對應(yīng)的列,并設(shè)置其軸類型為行。 - 添加列字段,同樣通過
XlsPivotTable.PivotFields.get_Item
方法選擇列,并設(shè)置其軸類型為列。 - 添加值字段,選擇需要求和的數(shù)據(jù)列,并通過
XlsPivotTable.DataFields.Add
方法添加到數(shù)據(jù)透視表中。 - 使用
XlsPivotCache.CalculateData()
方法更新數(shù)據(jù)透視表值。 - 使用
XlsPivotTable.BuiltInStyle
屬性應(yīng)用內(nèi)置樣式。 - 使用
XlsPivotTable.AutoFormatType
屬性設(shè)置數(shù)據(jù)透視表的自動格式類型。 - 使用
Workbook.SaveToFile
方法保存修改后的工作簿到指定路徑。 - 釋放資源。
代碼示例
from spire.xls import Workbook, AxisTypes, PivotBuiltInStyles, SubtotalTypes, PivotAutoFomatTypes # 創(chuàng)建Workbook實(shí)例 workbook = Workbook() # 載入Excel文件 workbook.LoadFromFile("Sample.xlsx") # 獲取第一個工作表 sheet = workbook.Worksheets.get_Item(0) # 獲取數(shù)據(jù)源單元格范圍 dataRange = sheet.Range.get_Item("A1:E143") # 用數(shù)據(jù)源創(chuàng)建XlsPivotCache對象 pivotCache = workbook.PivotCaches.Add(dataRange) # 使用XlsPivotCache對象在當(dāng)前工作表中創(chuàng)建數(shù)據(jù)透視表 pivotTable = sheet.PivotTables.Add("銷售分析", sheet.Range.get_Item("G2"), pivotCache) # 使用XlsPivotCache對象在新的工作表中創(chuàng)建數(shù)據(jù)透視表 #sheet2 = workbook.Worksheets.Add("銷售分析") #pivotTable2 = sheet.PivotTables.Add("銷售分析", sheet.Range.get_Item("A1"), pivotCache) # 添加行字段 rowField1 = pivotTable.PivotFields.get_Item(sheet.Range.get_Item("C1").Value) rowField1.Axis = AxisTypes.Row rowField2 = pivotTable.PivotFields.get_Item(sheet.Range.get_Item("D1").Value) rowField2.Axis = AxisTypes.Row # 添加列字段 columnField1 = pivotTable.PivotFields.get_Item(sheet.Range.get_Item("B1").Value) columnField1.Axis = AxisTypes.Column # 添加值字段 dataField1 = pivotTable.PivotFields.get_Item(sheet.Range.get_Item("E1").Value) pivotTable.DataFields.Add(dataField1, "求和項(xiàng):" + sheet.Range.get_Item("E1").Value, SubtotalTypes.Sum) # 計(jì)算值 pivotTable.CalculateData() # 設(shè)置數(shù)據(jù)透視表樣式 pivotTable.BuiltInStyle = PivotBuiltInStyles.PivotStyleLight2 # 設(shè)置數(shù)據(jù)透視表自動格式 pivotTable.AutoFormatType = PivotAutoFomatTypes.Table2 # 保存工作簿 workbook.SaveToFile("output/Excel數(shù)據(jù)透視表.xlsx") workbook.Dispose()
結(jié)果
本文演示如何使用Python在Excel工作表中創(chuàng)建數(shù)據(jù)透視表,提供操作詳解以及代碼示例。
到此這篇關(guān)于使用Python在Excel工作表中創(chuàng)建數(shù)據(jù)透視表的方法的文章就介紹到這了,更多相關(guān)Python Excel數(shù)據(jù)透視表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows和Linux下使用Python訪問SqlServer的方法介紹
這篇文章主要介紹了Windows和Linux下使用Python訪問SqlServer的方法介紹,本文講解了Windows下配置Python訪問Sqlserver、Linux下配置Python訪問SqlServer等內(nèi)容,需要的朋友可以參考下2015-03-03python讀取word 中指定位置的表格及表格數(shù)據(jù)
這篇文章主要介紹了python讀取word 中指定位置的表格及表格數(shù)據(jù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧2019-10-10使用Python進(jìn)行QQ批量登錄的實(shí)例代碼
這篇文章主要介紹了使用Python進(jìn)行QQ批量登錄的實(shí)例代碼,代碼簡單易懂非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06python3連接MySQL數(shù)據(jù)庫實(shí)例詳解
這篇文章主要為大家詳細(xì)介紹了python3連接MySQL數(shù)據(jù)庫實(shí)例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05python使用open函數(shù)對文件進(jìn)行處理詳解
今天看了open函數(shù),看到w+ r+ a+ 這種可讀可寫的操作,下面這篇文章主要給大家介紹了關(guān)于python使用open函數(shù)對文件進(jìn)行處理的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05python中字符串內(nèi)置函數(shù)的用法總結(jié)
這篇文章給大家總結(jié)了python中字符串內(nèi)置函數(shù)的用法以及相關(guān)知識點(diǎn)內(nèi)容,有興趣的朋友學(xué)習(xí)下。2018-09-09Python使用progressbar模塊實(shí)現(xiàn)的顯示進(jìn)度條功能
這篇文章主要介紹了Python使用progressbar模塊實(shí)現(xiàn)的顯示進(jìn)度條功能,簡單介紹了progressbar模塊的安裝,并結(jié)合實(shí)例形式分析了Python使用progressbar模塊顯示進(jìn)度條的相關(guān)操作技巧,需要的朋友可以參考下2018-05-05