[英]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.