Excel未开始在Apache上运行的Django应用程序上使用Win32

时间:2019-06-26 11:35:19

标签: python django excel apache winapi

我有一个基于Django 2.1.4构建的应用程序。我有一段代码使用win32 COM对象将excel xlsx转换为PDF。问题是相同的代码在具有与PROD相同规格的QA环境中工作。

下面的代码无法启动excel应用程序,因此我无法将此工作簿转换为PDF。它返回一个Excel应用程序,但是excel无法启动。我保留了“ xlApp.Visible = True”。

xlApp = client.DispatchEx("Excel.Application")

上面的代码在IDLE环境下可以正常工作,并将excel转换为PDF,而在Django的view函数中却有问题。

我还在View函数中使用了pythoncom.CoInitialize()。

尝试在IDLE上运行它,并且效果很好。。在Django应用程序内部存在问题

打印(“需要PDF”)

pythoncom.CoInitialize()
xlApp = client.DispatchEx("Excel.Application")
#xlApp = client.gencache.EnsureDispatch("Excel.Application")
print("xlApp : ",xlApp)
xlApp.Visible = False
books = xlApp.Workbooks.Open(os.getcwd() + '\\' + directory_name + '\\' + 
directory_name + '.xlsx')
print("Books : ",books)
#ws = books.Worksheets[0]
ws = books.Worksheets('CFS')
ws.Visible = 1
print("Visible is 1")
ws.ExportAsFixedFormat(0, os.getcwd() + '\\' + directory_name + '\\' + 
directory_name + '.pdf')
print("Exported ")
xlApp.Quit()

预期输出是与同一目录中的xlsx文件同名的PDF

0 个答案:

没有答案