Todd Lewden
Todd Lewden

Reputation: 309

pywintypes.com_error opening Excel with Python

I have the following script which was immitated from here ( http://pythonexcels.com/python-excel-mini-cookbook/ ):

import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open('words.xlsx')

and it returns the following error ( full traceback )

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    wb = excel.Workbooks.Open('words.xlsx')
  File "C:directory\Python35\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x7\Workbooks.py", line 78, in Open
    , Converter, AddToMru, Local, CorruptLoad)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel', "'words.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.", 'xlmain11.chm', 0, -2146827284), None)

When I alternatively use openpyxl's functions to open the workbook there is no issue (referenced this https://automatetheboringstuff.com/chapter12/ ) . The python file and the excel file are in the same folder together. Am I calling something inappropriately?

I am certain that the file is spelled correctly ( words.xlsx ) and that it is in the same folder as the python file.

Any thoughts would be appreciated.

Upvotes: 2

Views: 18489

Answers (2)

dsgdfg
dsgdfg

Reputation: 1510

Try this:

import win32com.client as win32
import os
excel = win32.gencache.EnsureDispatch('Excel.Application')
path =  os.getcwd().replace('\'','\\') + '\\'
wb = excel.Workbooks.Open(path+'words.xlsx')

Excepted a path error, not module or system error.

'xlmain11.chm' is empty, so don't need this.

Be careful when using escape characters on path-string. Script and work file are in the same directory!

Hope that helps

Upvotes: 5

Shubham Naik
Shubham Naik

Reputation: 418

Have you tried openpyxl, it's very easy to use, reading and writing excel files is no trouble

from openpyxl import Workbook 

And initialize as

wb = Workbook()
ws = wb.active()

And you can start reading and writing right away

Upvotes: 0

Related Questions