首页 > 解决方案 > 无需使用 Python 打开 Excel 即可刷新数据透视表

问题描述

我可以用 Python 刷新数据透视表,但我不想看到 excel,我想在后台刷新为不可见。

import win32com.client

office = win32com.client.Dispatch("Excel.Application")
wb = office.Workbooks.Open(r"path\to\excel\file\to\print.xlsm")

count = wb.Sheets.Count
for i in range(count):
    ws = wb.Worksheets[i]

    pivotCount = ws.PivotTables().Count
    for j in range(1, pivotCount+1):
        ws.PivotTables(j).PivotCache().Refresh()
wb.Save()
wb.Close()

我昨天尝试的时候没有出现。但我现在正在尝试,excel已经出现,刷新并关闭。我怎样才能刷新为不可见?

标签: pythonexcelpivot-table

解决方案


    xl = win32.gencache.EnsureDispatch("Excel.Application")
    xl.Visible = False
    xl.DisplayAlerts = False

设置 Visible = False 让刷新在后台发生,Excel 将不会在屏幕上可见。您还可以考虑设置 DisplayAlerts = False 以禁止需要任何用户操作的任何警报窗口。


推荐阅读