使用python将数据透视表的数据源选择扩展到excel的最后一行,并刷新数据透视表

时间:2017-11-20 08:34:05

标签: python excel pivot-table pywin32

我使用python自动执行一些excel任务。

我有一个数据透视表,它从excel表中获取值。数据每周都附加到特定的Excel工作表,但数据透视表不会自动刷新,因此,每次,我必须转到Excel工作表并在更改数据源中提供最后一行编号选项。有没有办法使用python自动更新数据透视表,更具体地说是使用 pywin32

这是我尝试过的代码:

def refresh_pivot_tables():

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(main_file)
ws = xlBook.Worksheets['Summary']
ws.Unprotect()  # IF protected
pivotCount = ws.PivotTables().Count
print("pivot count is",pivotCount)

for j in range(1, pivotCount + 1):
    ws.PivotTables(j).PivotCache().Refresh()

# 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

0 个答案:

没有答案