我有一些问题,在Web应用程序 打开Excel文件的Apache(mod_wsgi的)/ Windows下运行的2008服务器(也就是当应用程序的Django开发服务器上运行,没有 问题 - 单线程)。win32com +的Excel + Django的+阿帕奇=问题
我的代码:
def my_view(request):
import pythoncom
from win32com.client import DispatchEx
pythoncom.CoInitializeEx(pythoncom.COINIT_MULTITHREADED)
xl = win32com.client.dynamic.Dispatch('Excel.Application')
xl.DisplayAlerts = False
xl.Visible = 0
doc = xl.Workbooks.Open("C:\\path\\to\\file.xlsx")
doc.Saved = True
...
wb.Close(SaveChanges=0)
xl.Quit()
pythoncom.CoUninitialize()
错误消息:
(-2147352567, '异常发生',(0,u'Microsoft Office Excel中”, U“Microsoft Office Excel中无法访问文件'C:\ path \到 \ file.xlsx'。有几种可能的原因:文件名或路径 不存在。该文件正在被其他程序使用。您试图保存的 工作簿具有与当前打开的 工作簿同名。“,u'C:\ Progra m文件(x86)\微软Office \ Office12 \ \ 1033 \ XLMAIN11.CHM',0,-2146827284),无)
我知道问题是本地化的线程,但在哪里? 我使用的是pythoncom.CoInitializeEx(pythoncom.COINIT_MULTITHREADED)。 也许更改服务器将解决问题?
利布斯:Django的1.2,Apache 2.2的(mod_wsgi的),win32com(最新)
我希望有人能帮助我。
谢谢, 尊敬。
不幸的是我不能。我必须管理许多宏并执行其他重要的Excel操作。 – meme 2011-01-26 13:09:42