我有一个工作簿,其中有几个带有数据透视表的选项卡。 我可以将数据放在保存每个数据透视表数据的选项卡上。 我的问题是我不知道如何刷新数据透视表。 我假设我需要循环浏览每张工作表,检查是否有数据透视表,然后刷新它。 我只是不知道该怎么做。 我发现的所有示例都使用 win32 选项,但我使用的是 Mac 和 Linux。
如果可能的话,我想用 openpyxl 来实现。
从开发人员创建宏 -
私有子工作表_更改(ByVal 目标作为范围)
Worksheets("SheetName").PivotTables("PivotTableName").PivotCache.Refresh
结束子
您在主要数据中使用“格式为表格”吗?执行此操作时,您可以在表中附加新信息,而不必更改数据透视表中的新范围。然后,您只需选择数据透视表中的任何单元格,然后转到“分析”并选择“刷新全部”,它将刷新工作簿中的所有内容。
我制作了这个教程来展示这一点。它是西班牙语,但我使用的是英文版 Excel,因此很容易理解。
工作表(“工作表名称”).数据透视表(“数据透视表名称”).PivotCache().刷新()
以下是打开 Excel 文件时刷新 Excel 工作表中的数据透视表的代码:
workbook = openpyxl.load_workbook('your_filename') # Open excel file
piv_sheet = workbook['PivotReport'] # Load the worksheet with the pivot table/s
for pivot_table in piv_sheet._pivots: # Find all the pivot tables in the sheet
pivot_table.cache.refreshOnLoad = True # Set the refreshOnLoad to true
workbook.save('your_filename') # Save your file