我有一些問題,在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