簡體   English   中英

Python:使用Win32com打開Excel工作簿時出錯

[英]Python: error opening excel workbook with win32com

我正在嘗試制作一個程序來打開現有的excel文件,以便讀取和寫入其內容。 我已經無法打開文件了。

我的代碼:

def open_sheet():
    excel = win32com.client.Dispatch("Excel.Application")
    wb = excel.Workbooks(r'C:\Users\<username>\Documents\<more file path>\test.xls').Open()
    ws = wb.Worksheets('abc') # there is a worksheet called abc.
    excel.Visible = True

注意:為了簡潔起見,我縮寫了文件路徑。 .py文件和test.xls文件位於同一文件夾中。

錯誤:

Traceback (most recent call last):
  File "C:\Users\<username>\Documents\<more file path>\automation code.py", line 37, in <module>
    open_sheet()
  File "C:\Users\<username>\Documents\<more file path>\automation code.py", line 33, in open_sheet
    wb = excel.Workbooks(r'C:\Users\<username>\Documents\<more file path>\test.xls').Open()
  File "C:\Users\<username>\AppData\Local\Programs\Python\Python36-32\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x9\Workbooks.py", line 198, in __call__
    ret = self._oleobj_.InvokeTypes(0, LCID, 2, (13, 0), ((12, 1),),Index
pywintypes.com_error: (**-2147352567**, '例外が発生しました。', (0, None, None, None, 0, -2147352565), None)

注意:我使用的是日文計算機。 日語中的句子意思是“發生異常”。

我試圖找出有關該錯誤的更多信息:

import win32api
win32api.FormatMessage(**-2147352567**)

Output:
'例外が発生しました。\r\n'
(The translation, I think, is: 'Exception occurred. \r\n')

我發現了這個問題 在其中,錯誤號是相同的,但是他們的問題是工作表名稱錯誤。 我的工作表名稱“ abc”確實存在於excel文件中。

以下內容也可能是有用的診斷信息。 此代碼有效(用於創建和打開新工作簿):

def make_xl():
    o = win32com.client.Dispatch("Excel.Application")
    o.Visible = 1
    o.Workbooks.Add() # for office 97 – 95 a bit different!
    o.Cells(1,1).Value = "Hello"

其他信息:已安裝Windows 10 Python 3.6 Python win(pywin32內部版本222)

我是使用win32com的新手。 請幫助我解決此問題。

我認為您的問題來自:

wb = excel.Workbooks(r'C:\Users\<username>\Documents\<more file path>\test.xls').Open()

文件的路徑應位於Open()例如:

wb = excel.Workbooks.Open(r'C:\Users\<username>\Documents\<more file path>\test.xls')

還要注意, Workbooks后沒有(),就像第二個代碼一樣。 這種方式對我有用。

暫無
暫無

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

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