2014-07-24 126 views
0

我已經下載並安裝了pywin32。我試圖用pywin32打開一個工作簿,我幾乎肯定我正確地編寫了這個,但是我想出了一個像這樣的錯誤。使用pywin32查找Excel工作簿

File "<COMObject <unknown>>", line 8, in Open 
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Excel', u"'Kithenshiftweekly.xlsx' could not be found. Check the spelling of the file name, and verify that the file location is correct.\n\nIf you are trying to open the file from your list of most recently used files, make sure that the file has not been renamed, moved, or deleted.", u'xlmain11.chm', 0, -2146827284), None) 

我當前的代碼如下(不是很多)

import win32com.client 
x1 = win32com.client.Dispatch("Excel.Application") 
x1.Visible = True 
x1.Workbooks.Open("Kitchen") 

x1.Workbooks.Open( 「廚房」)導致此問題。

雖然沒有找到工作簿。發生了什麼?

+0

請標記4行中的哪一行導致此錯誤。另外,腳本的最後一行應該是函數調用,如'x1.Workbooks(「Kitchen」)。Open()'。 – Schollii

+0

只是修復它,它是x1.Workbooks(「廚房」)。打開() –

+0

你可能也想看看我的開源庫http://xlwings.org,它是一個圍繞pywin32的包裝,並使很多事情更容易。 –

回答

0

有兩個問題;首先,您必須附加擴展名(如「Kitchen.xlsx」),其次,您必須提供工作簿的完整路徑。所以,如果您的工作簿是「Kitchen.xlsx」,你必須在同一文件夾你的腳本,然後你的代碼應該是這個樣子:

import win32com.client 
import os 
x1 = win32com.client.Dispatch("Excel.Application") 
x1.Visible = True 
x1.Workbooks.Open(os.path.join(os.getcwd(), "Kitchen.xlsx")) 

(該os.getcwd()返回的完整路徑的目錄你的腳本如果你想將你的代碼和工作簿存儲在不同的目錄中,那麼你可以用一個字符串來指定路徑,請打印os.getcwd()以查看如何做到這一點。)