python - 无需使用 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已经出现,刷新并关闭。我怎样才能刷新为不可见?
解决方案
xl = win32.gencache.EnsureDispatch("Excel.Application")
xl.Visible = False
xl.DisplayAlerts = False
设置 Visible = False 让刷新在后台发生,Excel 将不会在屏幕上可见。您还可以考虑设置 DisplayAlerts = False 以禁止需要任何用户操作的任何警报窗口。
推荐阅读
- reactjs - 使用 React Router 显示详细信息
- android - Android Studio - 设备文件资源管理器图片目录
- elixir - HTTPoison 在从不同域调用多个端点时使用错误的基本 URL
- python - 使用 python 和 pandas 计算时间并将值推送到 CSV 文件中
- ios - 货币复数 swift 不允许配置
- python - 如何解释 Python 的 subprocess.run 的返回码
- ios - 在 FScalendar swift 中禁用某些未来日期选择
- winapi - 具有透明背景的win32菜单项位图
- python - 将文本转换为列或数据框或其他文本
- python - Python NameError:未定义名称“X”