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[=13=]020813-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)
注意:我用的是日本电脑。这句话在日语中的意思是'Exception occurred'.
我试图找出更多关于错误的信息:
import win32api
win32api.FormatMessage(**-2147352567**)
Output:
'例外が発生しました。\r\n'
(The translation, I think, is: 'Exception occurred. \r\n')
我找到了 。其中,错误编号相同,但他们的问题是 sheet 名称错误。我的 sheet 名字 '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 build 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
之后没有 ()。这种方式适合我。
我正在尝试制作一个程序来打开现有的 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[=13=]020813-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)
注意:我用的是日本电脑。这句话在日语中的意思是'Exception occurred'.
我试图找出更多关于错误的信息:
import win32api
win32api.FormatMessage(**-2147352567**)
Output:
'例外が発生しました。\r\n'
(The translation, I think, is: 'Exception occurred. \r\n')
我找到了
以下可能也是有用的诊断信息。此代码有效(创建并打开一个新工作簿):
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 build 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
之后没有 ()。这种方式适合我。