一、概述
openpyxl提供對透視表的讀取支持,以便將它們保留在現有文件中。pivot表的規范(雖然是擴展的)並不明確,也不希望客戶機代碼能夠創建pivot表。但是,應該可以編輯和操作現有的透視表,例如更改它們的范圍或是否應該自動更新設置。
需求:目前是數據源改變時,透視表的數據沒有變化,因此需要刷新透視表才行。
二、演示
本文使用的pytho版本為:3.7.9
安裝openpyxl
pip3 install openpyxl==3.0.4
注意:千萬不要安裝3.0.5,否則打開包含透視表的excel會報錯。
...
TypeError: Value must be a sequence
創建透視表
現有一個4567.xlsx,內容如下:
在這個表,我們來創建一下透視表。點擊插入-->數據透視表-->數據透視表
區域選擇數據部分
點擊確定
選擇2個列,如下圖
效果如下:
准備好了,先來刪除最后一條數據,趙六。會發現透視表的總計數字並沒有變化。
使用openpyxl來刷新一下透視表
# !/usr/bin/python3 # -*- coding: utf-8 -*- import openpyxl excel_writer = "4567.xlsx" wb = openpyxl.load_workbook(excel_writer) # 打開excel文件 pivot_sheet = wb["Sheet1"] # 打開指定Sheet pivot = pivot_sheet._pivots[0] # 任何一個都可以共享同一個緩存 pivot.cache.refreshOnLoad = True # 刷新加載 wb.save(excel_writer) # 保存
執行代碼,再次查看excel表
發現透視表的統計數據,已經刷新過來了。
本文參考鏈接: