Opening file in Excel

dsavitsk dsavitsk at e-coli.net
Sun Aug 18 22:31:03 CEST 2002


have you tried using the whole file path? i.e. -> 'C:\\my\\path\\mytest.xls'
also, instead of throwing the file name at XL, see if the file exists first.
>>> import os.path
>>> if os.path.exists(filename):
...    lf.xlBook = self.xlApp.Workbooks.Open(filename)

-d


"Lemniscate" <d_blade8 at hotmail.com> wrote in message
news:7396d2b2.0208161046.7b18638f at posting.google.com...
> 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