簡體   English   中英

使用xlwings運行交互式GUI時出現問題

[英]Issue while running interactive GUI with xlwings

我構建了一個GUI(使用PyQt5),使我可以讀取CSV,進行一些基本操作並將其發送到Excel。

然后,我使用xlwings將此GUI集成到Excel中,但是我遇到了問題。 使用GUI時,無法在Excel中操作數據。 我認為這是因為我的宏仍在運行。

有沒有一種方法可以運行我的GUI而不失去對Excel的控制?

def Main():
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

並在Excel中:

Sub GUI()
    RunPython ("import UImainwindow; UImainwindow.Main())
End sub

最終我找到了解決方案。

我修改ExecuteWindows子目錄以添加一個可選參數,如下所示:

Sub ExecuteWindows(IsFrozen As Boolean, PythonCommand As String, PYTHON_WIN As String, LOG_FILE As String, SHOW_LOG As Boolean, Optional PYTHONPATH As String, Optional WaitOnReturnBool As Boolean) 

然后我像這樣修改RunPython函數

Public Function RunPython(PythonCommand As String, Optional ByVal WaitOnReturnBool As Boolean = True)

ExecuteWindows False, PythonCommand, PYTHON_WIN, LOG_FILE, SHOW_LOG, PYTHONPATH, WaitOnReturnBool

最后用兩個參數調用RunPython函數

RunPython command, WaitOnReturnBool

我必須在腳本中使用wb = xw.Workbook.active()而不是wb = xw.Workbook.caller(),但是它可以正常工作。 這使我能夠在不失去對Excel的控制的情況下運行extern GUI。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM