使用Python在Excel中創(chuàng)建和取消數(shù)據(jù)分組
引言
Excel中的分組是一種通過(guò)添加層級(jí)結(jié)構(gòu)將相鄰行或列組織在一起的功能。當(dāng)分組完成后,用戶(hù)可以通過(guò)折疊或展開(kāi)數(shù)據(jù)組來(lái)簡(jiǎn)化數(shù)據(jù)視圖。這種功能特別適用于包含多層次結(jié)構(gòu)的數(shù)據(jù),或者需要隱藏部分?jǐn)?shù)據(jù)以便專(zhuān)注于特定內(nèi)容的場(chǎng)景。這篇博客將介紹如何使用Python在Excel中創(chuàng)建或取消數(shù)據(jù)分組,主要涵蓋以下內(nèi)容:
- Python在Excel中創(chuàng)建行和列分組
- Python在Excel中創(chuàng)建嵌套分組
- Python獲取Excel中的行和列的大綱級(jí)別
- Python展開(kāi)或折疊Excel中的分組
- Python在Excel中創(chuàng)建分類(lèi)匯總
- Python取消Excel中的行和列分組
使用工具
在Python中,可以使用Spire.XLS for Python庫(kù)來(lái)實(shí)現(xiàn)在Excel中創(chuàng)建和取消數(shù)據(jù)分組。
Spire.XLS for Python主要用于在Python應(yīng)用程序中創(chuàng)建、讀取、編輯和轉(zhuǎn)換Excel文件。它可以處理多種電子表格格式,包括XLS、XLSX、XLSB、XLSM和ODS等。此外,還可以將Excel文件轉(zhuǎn)換為其他文件格式,如PDF、HTML、CSV、文本、圖像、XML、SVG、ODS、PostScript和XPS。
你可通過(guò)在終端運(yùn)行以下命令來(lái)安裝Spire.XLS for Python:
pip install Spire.Xls
Python在Excel中創(chuàng)建行和列分組
Spire.XLS for Python提供了Worksheet.GroupByRows()和Worksheet.GroupByColumns()方法,分別用于對(duì)Excel工作表中的行和列的數(shù)據(jù)進(jìn)行分組。
這些方法的參數(shù)如下:
- 分組的起始行或起始列的索引。
- 分組的結(jié)束行或結(jié)束列索引。
- 是否折疊分組,True表示折疊,F(xiàn)alse表示展開(kāi)。
下面是使用Python對(duì)Excel工作表中的行和列進(jìn)行分組的實(shí)現(xiàn)代碼:
from spire.xls import * # 打開(kāi)一個(gè)Excel文件 workbook = Workbook() workbook.LoadFromFile("數(shù)據(jù).xlsx") # 獲取第一個(gè)工作表 sheet = workbook.Worksheets[0] # 分組第2-6行 sheet.GroupByRows(2, 6, False) # 分組第2-3列 sheet.GroupByColumns(2, 3, False) # 保存結(jié)果文件 workbook.SaveToFile("創(chuàng)建分組.xlsx", ExcelVersion.Version2016) workbook.Dispose()
Python在Excel中創(chuàng)建嵌套分組
嵌套分組是指將一個(gè)分組嵌套在另一個(gè)分組之內(nèi),從而形成多層次的數(shù)據(jù)結(jié)構(gòu)。例如,在銷(xiāo)售數(shù)據(jù)中,可以按“地區(qū)”分組,然后在每個(gè)地區(qū)內(nèi)再按“銷(xiāo)售人員”進(jìn)行分組。這樣,數(shù)據(jù)的組織結(jié)構(gòu)更加清晰,并且便于分析。
要在Excel工作表中創(chuàng)建嵌套行或列分組,可以通過(guò)多次使用Worksheet.GroupByRows()或Worksheet.GroupByColumns()方法來(lái)實(shí)現(xiàn)。
下面是使用Python在Excel工作表中創(chuàng)建嵌套行分組的實(shí)現(xiàn)代碼:
from spire.xls import * # 打開(kāi)一個(gè)Excel文件 workbook = Workbook() workbook.LoadFromFile("數(shù)據(jù).xlsx") # 獲取第一個(gè)工作表 sheet = workbook.Worksheets[0] # 分組第2-11行 sheet.GroupByRows(2, 11, False) # 在以上分組中創(chuàng)建嵌套分組 sheet.GroupByRows(2, 6, False) # 保存結(jié)果文件 workbook.SaveToFile("創(chuàng)建嵌套分組.xlsx", ExcelVersion.Version2016) workbook.Dispose()
Python獲取Excel中的行和列的大綱級(jí)別
工作表中行或列的默認(rèn)大綱級(jí)別為0,表示該行列當(dāng)前未分組。每次分組時(shí),大綱級(jí)別會(huì)相應(yīng)地增加1。通過(guò)使用Worksheet.Range[].RowGroupLevel和Worksheet.Range[].ColumnGroupLevel屬性,可以獲取特定行或列的大綱級(jí)別。
下面是獲取Excel工作表中特定行和列的大綱級(jí)別的實(shí)現(xiàn)代碼:
from spire.xls import * # 打開(kāi)一個(gè)Excel文件 workbook = Workbook() workbook.LoadFromFile("創(chuàng)建分組.xlsx") # 獲取第一個(gè)工作表 sheet = workbook.Worksheets[0] # 獲取特定行和列的大綱級(jí)別 row_outline_level = sheet.Range["A2"].RowGroupLevel col_outline_level = sheet.Range["C1"].ColumnGroupLevel # 打印大綱級(jí)別 print(f"單元格A2的行大綱級(jí)別:{row_outline_level}") print(f"單元格C1的列大綱級(jí)別:{col_outline_level}") workbook.Dispose()
Python展開(kāi)或折疊Excel中的分組
要展開(kāi)或折疊Excel工作表中的分組數(shù)據(jù),可以使用Worksheet.Range[].ExpandGroup或Worksheet.Range[].CollapseGroup方法,前者用于展開(kāi)分組,后者用于折疊分組。
下面是使用Python在Excel中展開(kāi)或折疊分組數(shù)據(jù)的實(shí)現(xiàn)代碼:
from spire.xls import * # 打開(kāi)一個(gè)Excel文件 workbook = Workbook() workbook.LoadFromFile("創(chuàng)建分組.xlsx") # 獲取第一個(gè)工作表 sheet = workbook.Worksheets[0] # 折疊指定單元格區(qū)域內(nèi)的分組行 sheet.Range["A2:C6"].CollapseGroup(GroupByType.ByRows) # 或者展開(kāi)指定單元格區(qū)域內(nèi)的分組行 # sheet.Range["A2:C6"].ExpandGroup(GroupByType.ByRows) # 折疊指定單元格區(qū)域內(nèi)的分組列 sheet.Range["B1:C11"].CollapseGroup(GroupByType.ByColumns) # 或者展開(kāi)指定單元格區(qū)域內(nèi)的分組列 # sheet.Range["B2:C11"].ExpandGroup(GroupByType.ByColumns) # 保存結(jié)果文件 workbook.SaveToFile("折疊分組.xlsx", ExcelVersion.Version2016) workbook.Dispose()
Python在Excel中創(chuàng)建分類(lèi)匯總
Excel中的SUBTOTAL函數(shù)允許用戶(hù)對(duì)數(shù)據(jù)進(jìn)行分組并自動(dòng)執(zhí)行特定的分類(lèi)匯總操作,如求和、計(jì)數(shù)、平均值、乘積和最大值。
在Spire.XLS中,可以使用Worksheet.Subtotal()方法為數(shù)據(jù)添加分類(lèi)匯總。該方法的參數(shù)如下:
- 數(shù)據(jù)區(qū)域:指定需要進(jìn)行分類(lèi)匯總的單元格區(qū)域。
- 分組依據(jù):按哪一列的索引對(duì)數(shù)據(jù)進(jìn)行分組。
- 匯總列:需要進(jìn)行匯總計(jì)算的列索引列表。
- 匯總類(lèi)型:選擇用于計(jì)算分類(lèi)匯總的函數(shù)類(lèi)型,例如求和 (Sum)、計(jì)數(shù) (Count) 等。
- 替換現(xiàn)有匯總:是否替換當(dāng)前分類(lèi)匯總,True 表示替換,F(xiàn)alse 表示保留。
- 插入分頁(yè)符:是否每組數(shù)據(jù)分頁(yè),True 表示分頁(yè),F(xiàn)alse 表示不分頁(yè)。
- 顯示位置:是否將匯總顯示在數(shù)據(jù)下方,True 表示顯示在下方,F(xiàn)alse 表示顯示在上方。
下面是使用Python為Excel工作表中指定數(shù)據(jù)區(qū)域添加分類(lèi)匯總的實(shí)現(xiàn)代碼:
from spire.xls import * # 打開(kāi)一個(gè)Excel文件 workbook = Workbook() workbook.LoadFromFile("數(shù)據(jù).xlsx") # 獲取第一個(gè)工作表 sheet = workbook.Worksheets[0] # 為指定的數(shù)據(jù)區(qū)域創(chuàng)建分類(lèi)匯總 cell_range = sheet.Range["A2:C11"] sheet.Subtotal(cell_range, 0, [2], SubtotalTypes.Sum, True, False, True) # 保存結(jié)果文件 workbook.SaveToFile("添加分類(lèi)匯總.xlsx", ExcelVersion.Version2016) workbook.Dispose()
Python取消Excel中的行和列分組
雖然分組功能有利于查看特定數(shù)據(jù),但有時(shí)候需要取消分組以便查看整個(gè)數(shù)據(jù)集。
要取消Excel工作表中的分組,可以使用Worksheet.UngroupByRows()或Worksheet.UngroupByColumns()方法,前者用于取消行分組,后者用于取消列分組。
下面是使用Python取消Excel工作表中的行和列分組的實(shí)現(xiàn)代碼:
from spire.xls import * # 打開(kāi)一個(gè)Excel文件 workbook = Workbook() workbook.LoadFromFile("創(chuàng)建分組.xlsx") # 獲取第一個(gè)工作表 sheet = workbook.Worksheets[0] # 取消分組第2-6行 sheet.UngroupByRows(2, 6) # 取消分組第2-3列 sheet.UngroupByColumns(2, 3) # 保存結(jié)果文件 workbook.SaveToFile("取消分組.xlsx", ExcelVersion.Version2016) workbook.Dispose()
以上就是使用Python在Excel中創(chuàng)建和取消數(shù)據(jù)分組的全部?jī)?nèi)容。
以上就是使用Python在Excel中創(chuàng)建和取消數(shù)據(jù)分組的詳細(xì)內(nèi)容,更多關(guān)于Python Excel創(chuàng)建和取消數(shù)據(jù)分組的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
PyTorch的深度學(xué)習(xí)入門(mén)教程之構(gòu)建神經(jīng)網(wǎng)絡(luò)
這篇文章主要介紹了PyTorch的深度學(xué)習(xí)入門(mén)教程之構(gòu)建神經(jīng)網(wǎng)絡(luò),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06一份python入門(mén)應(yīng)該看的學(xué)習(xí)資料
關(guān)于python入門(mén)你應(yīng)該看這些資料,幫助你快速入門(mén)python,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04Python使用Kafka處理數(shù)據(jù)的方法詳解
Kafka是一個(gè)分布式的流數(shù)據(jù)平臺(tái),它可以快速地處理大量的實(shí)時(shí)數(shù)據(jù)。在Python中使用Kafka可以幫助我們更好地處理大量的數(shù)據(jù),本文就來(lái)和大家詳細(xì)講講具體使用方法吧2023-04-04Python configparser模塊封裝及構(gòu)造配置文件
這篇文章主要介紹了Python configparser模塊封裝及構(gòu)造配置文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Python 讀取xml數(shù)據(jù),cv2裁剪圖片實(shí)例
這篇文章主要介紹了Python 讀取xml數(shù)據(jù),cv2裁剪圖片實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Python實(shí)現(xiàn)初始化不同的變量類(lèi)型為空值
這篇文章主要介紹了Python實(shí)現(xiàn)初始化不同的變量類(lèi)型為空值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06