如何使Excel RefreshAll等待关闭,直到它完成刷新(python)?

时间:2017-12-01 11:12:29

标签: python excel refresh win32com

我发现了link,但我无法解决问题

我有一个没有数据透视表的excel,所以命令" table.BackgroundQuery = False"在下面的代码中永远不会被激活。如何在没有Pivot表的Excel文件中解决有关我的问题的问题?

import win32com.client
fileName = "C:\\Users\Davide\Desktop\Refresh.xlsx"
wb = xl.workbooks.open(fileName)
xl.Visible = True
#wb.RefreshAll()

for sheet in wb.Sheets:
    print(sheet.name)
    for table in sheet.QueryTables:
    print("Found a query table on %s called %s" % (sheet.name, table.name))
    table.BackgroundQuery = False
    if table.Refresh() == True:
        print("Query table %s refreshed!" % table.name)
    else:
        print("Query table %s FAILED to refresh." % table.name)
for i in range(1,5):
    try:
        print("Found pivot table #%s called %s" % (i,sheet.PivotTables(i).Name))
        if sheet.PivotTables(i).RefreshTable()==True:
            print("Refreshed pivot table %s" % sheet.PivotTables(i).Name)
        else:
            print("FAILED to refresh pivot table %s" % sheet.PivotTables(i).Name)
    except:
        print("No pivot table #%s found on sheet %s" % (i,sheet.Name))
        break
wb.Save()
xl.Quit()

0 个答案:

没有答案