- Python XlsxWriter 教程
- Python XlsxWriter - 首頁
- Python XlsxWriter - 概述
- Python XlsxWriter - 環境設定
- Python XlsxWriter - Hello World
- Python XlsxWriter - 重要類
- Python XlsxWriter - 單元格表示法和範圍
- Python XlsxWriter - 已定義名稱
- Python XlsxWriter - 公式和函式
- Python XlsxWriter - 日期和時間
- Python XlsxWriter - 表格
- Python XlsxWriter - 應用篩選器
- Python XlsxWriter - 字型和顏色
- Python XlsxWriter - 數字格式
- Python XlsxWriter - 邊框
- Python XlsxWriter - 超連結
- Python XlsxWriter - 條件格式
- Python XlsxWriter - 新增圖表
- Python XlsxWriter - 圖表格式
- Python XlsxWriter - 圖表圖例
- Python XlsxWriter - 條形圖
- Python XlsxWriter - 折線圖
- Python XlsxWriter - 餅圖
- Python XlsxWriter - 迷你圖
- Python XlsxWriter - 資料驗證
- Python XlsxWriter - 大綱和分組
- Python XlsxWriter - 凍結和拆分窗格
- Python XlsxWriter - 隱藏/保護工作表
- Python XlsxWriter - 文字框
- Python XlsxWriter - 插入圖片
- Python XlsxWriter - 頁面設定
- Python XlsxWriter - 頁首和頁尾
- Python XlsxWriter - 單元格批註
- Python XlsxWriter - 與 Pandas 配合使用
- Python XlsxWriter - VBA 宏
- Python XlsxWriter 有用資源
- Python XlsxWriter - 快速指南
- Python XlsxWriter - 有用資源
- Python XlsxWriter - 討論
Python XlsxWriter - 大綱和分組
在 Excel 中,您可以對具有特定列(或行)相同值的行列進行分組,以便可以透過單擊滑鼠即可隱藏或顯示它們。此功能稱為**大綱和分組**。它有助於顯示小計或摘要。此功能可在 MS Excel 軟體的**資料→大綱**組中找到。
要使用此功能,資料範圍必須所有行都按一列的值排序。假設我們有不同專案的銷售資料。在按專案名稱對範圍排序後,單擊大綱組中的“小計”選項。將彈出以下對話方塊。
工作表顯示專案的銷售小計,最後是總計。在工作表的左側,顯示了大綱級別。原始資料位於級別 3,小計位於級別 2,總計位於級別 1。
使用大綱和分組
要使用 XlsxWriter 執行此操作,我們需要使用**set_row()**方法的 level 屬性。資料行設定在級別 2。
ws.set_row(row, None, None, {'level': 2})
小計的行位於級別 1。
ws.set_row(row, None, None, {'level': 1})
我們使用**SUBTOTAL()**函式來計算和顯示一組中銷售資料的總和。
示例
完整的程式碼如下:
import xlsxwriter
wb = xlsxwriter.Workbook('hello.xlsx')
ws = wb.add_worksheet()
headings=['Item', 'Sales']
data=[
['Apple', 45], ['Apple', 84], ['Apple', 125],
['Mango', 32], ['Mango', 65], ['Mango', 90],
['Oranges', 60], ['Oranges', 75], ['Oranges',100],
]
ws.write_row('A1', headings)
item='Apple'
rownum=1
startrow=1
for row in data:
if row[0]==item:
ws.set_row(rownum, None, None, {'level': 2})
ws.write_row(rownum,0, row)
rownum+=1
else:
ws.set_row(rownum, None, None, {'level': 1})
ws.write(rownum, 0, item+' Subtotal')
cellno='B{}:B{}'.format(startrow,rownum)
print (cellno)
ws.write(rownum,1,'=SUBTOTAL(9,'+cellno+')')
# rownum+=1
item=data[rownum][0]
rownum+=1
ws.set_row(rownum, None, None, {'level': 2})
ws.write_row(rownum,0, row)
rownum+=1
startrow=rownum
else:
ws.set_row(rownum, None, None, {'level': 1})
ws.write(rownum, 0, item+' Subtotal')
cellno='B{}:B{}'.format(startrow,rownum)
ws.write(rownum,1,'=SUBTOTAL(9,'+cellno+')')
rownum+=1
ws.write(rownum, 0, 'Grand Total')
cellno='B{}:B{}'.format(1,rownum)
ws.write(rownum,1,'=SUBTOTAL(9,'+cellno+')')
wb.close()
輸出
執行程式碼並使用 Excel 開啟**hello.xlsx**。我們可以看到,大綱顯示在左側。
在每個級別,減號表示可以摺疊行,並且只顯示小計行。
此圖顯示所有位於**級別 2**的行都已摺疊。現在它顯示了大綱中的加號,這意味著可以展開資料行。如果單擊**級別 1**處的減號,則工作表上將只剩下總計。
廣告