批量刷新Power Query-Python版
kikiloveqiqi
编辑于 2023年12月11日 00:49

测试了好几天,终于做出来了。

一开始用xlwings是来做,设置后台关闭总是报错,如果不是我写错的话,大概率是并非所有的vba的api都被xlwings可用、

用win32com很ok。

代码块
JavaScript
自动换行
复制代码
import os
import win32com.client
os.chdir(r'C:\kiki')
#遍历文件夹下的文件夹
excel = win32com.client.Dispatch('Excel.Application')
excel.Visible = False
excel.DisplayAlerts = False   
for dir,folder,files in os.walk(os.getcwd()):
    for file in files:
        name = os.path.join(dir, file)
        if name.endswith('xlsx'):   
           print(file)
           wb = excel.Workbooks.Open(name)

#关闭后台刷新
           for con in wb.Connections:
                con.OLEDBConnection.BackgroundQuery  = False  
           wb.RefreshAll()
           wb.Save()  
           wb.Close()
excel.DisplayAlerts = True 
#必须设置后台刷新关闭,才能保证刷新完pq再保存
print('Done')
复制成功