Opening file in Excel

Lemniscate d_blade8 at hotmail.com
Fri Aug 16 14:46:02 EDT 2002


Hi everybody,

I did a couple of searches of c.l.p and will do some more, but I
haven't been able to see anybody else with this problem.  Basically, I
am using the EasyExcel script from 'Python Programming on Win32' and I
am attempting to open an excel file.  I get a message that the file is
not present.  If I then open Excel, open the file, then close it, I
can open it.  Below is the traceback error I get.  You'll notice that
it opens fine and I can retrieve data the second time.  It's really
confusing me.  Also, I will post the relevant portion of code (and
just that section).  I need to be able to open, and process, excel
files.  Oh, the file is on the desktop, and Pythonwin is running in
the same directory.  Using the full path of the file results in the
exact same thing.  Thanks.

Chris

PS- I've decided to ignore it for now, but I cannot seem to open a
password protected file, even when I add the Password= flag to the
open function (I open the file, but still get the password prompt at
Excel, so I can't seem to automate opening protected files).  If you
know off-hand why, could you let me know (no rush here, I need to be
able to open files first).  Thanks.

PythonWin 2.2.1 (#34, Apr  9 2002, 19:34:33) [MSC 32 bit (Intel)] on
win32.
Portions Copyright 1994-2001 Mark Hammond (mhammond at skippinet.com.au)
- see 'Help/About PythonWin' for further copyright information.
>>> myxl = EasyExcel.EasyExcel('mytest.xls')
Traceback (most recent call last):
  File "<interactive input>", line 1, in ?
  File "C:\Documents and Settings\ckarim\Desktop\EasyExcel.py", line
11, in __init__
    self.xlBook = self.xlApp.Workbooks.Open(filename)
  File "win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x3.py",
line 14716, in Open
com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel',
"'mytest.xls' 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 on the File
menu, make sure that the file has not been renamed, moved, or
deleted.", 'C:\\Program Files\\Microsoft
Office\\Office\\1033\\xlmain9.chm', 0, -2146827284), None)

## Here, I manually open then close the file, then it works

>>> myxl = EasyExcel.EasyExcel('mytest.xls')
>>> myxl.GetRange(1,1,40,1)
((None,), (u'Target',), (u'ES',), (u'Mouse #',), (u'TC #',), (None,),
(u'Target',), (u'ES',), (u'Mouse #',), (u'TC #',), (None,),
(u'Target',), (u'ES',), (u'Mouse #',), (u'TC #',), (None,),
(u'Target',), (u'ES',), (u'Mouse #',), (u'TC #',), (None,),
(u'Target',), (u'ES',), (u'Mouse #',), (u'TC #',), (None,),
(u'Target',), (u'ES',), (u'Mouse #',), (u'TC #',), (None,),
(u'Target',), (u'ES',), (u'Mouse #',), (u'TC #',), (None,),
(u'Target',), (u'ES',), (u'Mouse #',), (u'TC #',))
>>> 


import win32com.client
class EasyExcel:
    """From "Programming Python on Win32."
    Multiple functions for use in manipulating data in and out of
    MS Excel.  Functions may be added at any time."""
    def __init__(self, filename = None):
        self.xlApp = win32com.client.Dispatch("Excel.Application")
        self.xlApp.Visible = 1
        if filename:
            self.filename = filename
            self.xlBook = self.xlApp.Workbooks.Open(filename)
        else:
            self.xlBook = self.xlApp.Workbooks.Add()
            self.filename = ''



More information about the Python-list mailing list