By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
432,462 Members | 799 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 432,462 IT Pros & Developers. It's quick & easy.

open excel file while it is being used.

P: n/a
Hi,

I have a python program that constantly updates an excel spreadsheet.
I would like to be able to view its updates while using excel to edit
other excel files. Below are the test codes I have:

--------------------------------------------------------------------------------------
from time import sleep
import win32com.client as w32c

def test():
w32c.pythoncom.CoInitialize()
print w32c.pythoncom._GetInterfaceCount()
app1 = w32c.Dispatch("Excel.Application")
#app1.Visible=False
#app1.Interactive = False
wb=app1.Workbooks.Open("c:\\temp\\Book1.xls")

sleep(3)
sh=wb.Sheets("Sheet1")
sh.Cells(2,1).Value = "Hello, world!"
sh = None

wb.Save()
wb = None
app1 = None
w32c.pythoncom.CoUninitialize()
print w32c.pythoncom._GetInterfaceCount()
-------------------------------------------------------------------------------------

If the user just looks at the file then it's fine, but if the user
double clicks one cell, which will have a cursor flashing in the cell,
then it will lead to a crash of the program with error: "Call was
rejected by callee." I can make the program keep trying to access the
file, but if the user doesn't make the flashing cursor disappear, the
program will wait forever!

I know excel has the fuction such that when a user is accessing a file
and other users open that file, it will prompt for options of opening
it as read-only or sending notification. I have been trying to
implement that in the program, but don't know how.

So, any suggestion will be greatly appreciated!

- Barry
Jan 10 '08 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Hi Barry,

Obviously what you are trying to do is detect file locks. I am not
exactly sure how to do this in Python but from previous system
administration jobs here are some scenarios that you might want to
watch out for.

- I know for one that if you are accessing the file on a Samba share,
file locking with OpenOffice or Excel have strange things happen to
them

- I am also aware that the same thing works different if the files are
shared from a Windows server and accessed on a Linux machine, and
depends on the version of Samba/Linux kernel you are running
On Jan 11, 7:38 am, barry.z...@gmail.com wrote:
Hi,

I have a python program that constantly updates an excel spreadsheet.
I would like to be able to view its updates while using excel to edit
other excel files. Below are the test codes I have:

--------------------------------------------------------------------------------------
from time import sleep
import win32com.client as w32c

def test():
w32c.pythoncom.CoInitialize()
print w32c.pythoncom._GetInterfaceCount()
app1 = w32c.Dispatch("Excel.Application")
#app1.Visible=False
#app1.Interactive = False
wb=app1.Workbooks.Open("c:\\temp\\Book1.xls")

sleep(3)
sh=wb.Sheets("Sheet1")
sh.Cells(2,1).Value = "Hello, world!"
sh = None

wb.Save()
wb = None
app1 = None
w32c.pythoncom.CoUninitialize()
print w32c.pythoncom._GetInterfaceCount()
-------------------------------------------------------------------------------------

If the user just looks at the file then it's fine, but if the user
double clicks one cell, which will have a cursor flashing in the cell,
then it will lead to a crash of the program with error: "Call was
rejected by callee." I can make the program keep trying to access the
file, but if the user doesn't make the flashing cursor disappear, the
program will wait forever!

I know excel has the fuction such that when a user is accessing a file
and other users open that file, it will prompt for options of opening
it as read-only or sending notification. I have been trying to
implement that in the program, but don't know how.

So, any suggestion will be greatly appreciated!

- Barry
Jan 11 '08 #2

This discussion thread is closed

Replies have been disabled for this discussion.