openpyxl刷新透視表


一、概述

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表

 

 發現透視表的統計數據,已經刷新過來了。

 

 

本文參考鏈接:

https://blog.csdn.net/masmq/article/details/107189931


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM