这是我试图更改现有数据透视表中的数据源的代码,我有两个数据透视表,我想更新源数据
excel_app = win32com.client.dynamic.Dispatch("Excel.Application")
excel_app.Interactive = False
excel_app.Visible = False
excel_app.DisplayAlerts = False
xlBook = excel_app.Workbooks.Open(r'C:\Users\70.P\De\E_Python_Script\Sc_ext.xlsx')
ws = xlBook.Worksheets['Sheet2']
ws.Unprotect() # IF protected
pivotCount = ws.PivotTables().Count
print("pivot count is",pivotCount)
for j in range(1, pivotCount + 1):
ws.PivotTables(j).PivotCaches.Create(SourceType=xlDatabase, SourceData="C:\Users\70.P\Desktop\E_Python_Script[Sc_ext.xlsx]Sheet1!$A$1:$AC$4601", Version=xlPivotTableVersion14)
# Put protection back on
#ws.Protect(DrawingObjects=True, Contents=True, Scenarios=True, AllowUsingPivotTables=True)
xlBook.Close(SaveChanges=1)
del xlBook
excel_app.Quit()
del excel_app
嗯,这是一个非常老的问题(我希望这可以帮助有同样问题的人)...
pivot_table = Sheet_name.PivotTables("数据透视表名称")
pivot_cache = WorkBook_name.PivotCaches().Create(SourceType = w32c.constants.xlDatabase, SourceData = data_Range, Version = 所需版本)
pivot_table.ChangePivotCache(pivot_cache)