亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python - 保留 excel 數據透視表

Python - 保留 excel 數據透視表

繁星淼淼 2023-04-25 17:41:30
我正在將現有文件復制到新工作簿中,然后隱藏一些不必要的選項卡。需要可見的選項卡之一包含一個數據透視表,該數據透視表在腳本完成后顯示為值(而不是實際的數據透視表)。我需要“保留”數據透視表編輯:Excel 2013版本這是我的代碼:import xlsxwriterimport openpyxl as xlimport shutilshutil.copy('C:/Prueba/GOOG.xlsm', 'C:/Prueba/GOOG-copia.xlsm')workbook  = xl.load_workbook('C:/Prueba/GOOG-copia.xlsm', keep_vba = 'True')keep = ['Cacaca','Sheet1'] # Cacaca contains a pivot table that needs to be preservedfor i in workbook.sheetnames:    if i in keep:        pivot = workbook[i]._pivots[0]        pivot.cache.refreshOnLoad = True        workbook[i].sheet_state = 'visible'    else:        workbook[i].sheet_state = 'hidden'workbook.save('C:/Prueba/GOOG-copia.xlsm')workbook.close錯誤:AttributeError: 'Worksheet' object has no attribute '_pivots'
查看完整描述

1 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

根據保存數據透視表的文檔,您必須至少將它們的一個布爾值設置pivot.cache.refreshOnLoadTrue

由于_pivots不存在于工作表上,除非它包含一個實際的數據透視表,我們可以檢查數據透視表并在找到時設置緩存:

for i in workbook.sheetnames:

? ? if i in keep:

? ? ? ? ws = workbook[i]

? ? ? ? if hasattr(ws, "_pivots"):

? ? ? ? ? ? pivot = ws._pivots[0]

? ? ? ? ? ? pivot.cache.refreshOnLoad = True

? ? ? ? workbook[i].sheet_state = 'visible'

? ? else:

? ? ? ? workbook[i].sheet_state = 'hidden'


查看完整回答
反對 回復 2023-04-25
  • 1 回答
  • 0 關注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號