代码之家  ›  专栏  ›  技术社区  ›  Bak

自动刷新excel电子表格的python脚本

  •  3
  • Bak  · 技术社区  · 8 年前

    我想自动刷新我的excel文件。 目前我的代码并不完全令人满意,因为excel每次都会要求我单击“取消”或“确定”。我在excel文件中有两张表。

    下面是python代码:

    import win32com.client as win32
    Xlsx = win32.DispatchEx('Excel.Application')
    Xlsx.DisplayAlerts = True
    Xlsx.Visible = True
    book = Xlsx.Workbooks.Open('C:/Test_Excel/Essai_1.xlsx')
    # Refresh my two sheets
    book.RefreshAll()
    book.Save()
    book.Close()
    Xlsx.Quit()
    del book
    del Xlsx
    

    如何自动刷新excel文件而不让excel问我任何问题。

    谢谢你

    2 回复  |  直到 8 年前
        1
  •  1
  •   Nordle    8 年前

    尝试设置 Xlsx.DisplayAlerts = True Xlsx.DisplayAlerts = False ,这应该能起到作用。

        2
  •  1
  •   Chris J    7 年前

    refreshAll()是一个异步函数,因此在执行其他操作之前需要等待它完成。可以使用xlsx.calculateUntilasyncQueriesDone()来完成此操作。

    import win32com.client as win32
    Xlsx = win32.DispatchEx('Excel.Application')
    Xlsx.DisplayAlerts = True
    Xlsx.Visible = True
    book = Xlsx.Workbooks.Open('C:/Test_Excel/Essai_1.xlsx')
    # Refresh my two sheets
    book.RefreshAll()
    Xlsx.CalculateUntilAsyncQueriesDone()# this will actually wait for the excel workbook to finish updating
    book.Save()
    book.Close()
    Xlsx.Quit()
    del book
    del Xlsx
    
    推荐文章