Excel的COM庫我想這樣做的以下Excel的VBA代碼,相當於在Python - COMKERNEL32通過在Python
Private Declare Function SetDllDirectory Lib "kernel32.dll" Alias "SetDllDirectoryA" (_
ByVal lpPathName As String) As Boolean
所以,現在在Excel VBA中,我可以叫SetDllDirectory(dllPath)
MSDN SetDllDirectory會:http://msdn.microsoft.com/en-gb/library/windows/desktop/ms686203(v=vs.85).aspx
在另一方面,在Python,使用win32com:
import win32com.client
xlapp = win32com.client.DispatchEx("Excel.Application")
我該怎麼做類似xlapp.SetDllDirectory(dllPath)
(顯然這是無效的,因此這個問題)?
我也試過ctypes.windll.kernel32.SetDllDirectoryA
但是這隻設置Python的DLL目錄,而不是xlapp(被COM操作的Excel實例)。
更多細節:本質上,我這樣做是因爲我嘗試將XLL動態加載到Excel(xlapp.RegisterXLL)中。但是這個特殊的xll文件需要一個駐留在特定路徑中的dll。因此我希望能夠設置DLL路徑。
非常感謝! Kris
您是否嘗試過從Python腳本內設置PATH?我會想象COM進程與客戶端運行的環境相同,但我現在沒有辦法檢查。 – Schollii