如何解决asp调用excel不稳定的问题?急啊!

walkingpoison 2002-07-22 11:03:18
我最近做的一个程序模块里面需要用到asp调用excel来生成excel文件,然后在客户端打开对应的excel文件。现在程序是都完成了,而且也能够正常出现excel的文件了。但是问题就是这个并不稳定,有的时候很快就能生成excel文件,但是有的时候就会出现创建excel对象失败的情况。而且只要失败一次,以后就怎么也出不来了。除非服务器重新启动。
这个生成excel的功能是程序中最重要的模块,可是现在却如此不稳定,请问各位高手有没有什么解决的办法?
...全文
11 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hchxxzx 2002-07-23
我在想可能是你生成文件之后没有及时释放资源的原因,你打开服务器的“任务管理器”,同时运行该程序,观察程序结束之后,任务管理器中是否还有EXCEL。EXE的进程遗留在里面,如果是,那就是问题所在
回复
walkingpoison 2002-07-23
有谁遇到过这种情况?帮个忙吧,谢谢!
回复
walkingpoison 2002-07-23
hwstu(疯狂绅士)谢谢你的提示,请问你所说得生成图表的简单方法是什么?我现在的方法总是导致服务器出错。

我现在的思路是这样的:
先建立excel对象
Set xlsApp = server.CreateObject("Excel.Application")
Set xlsWorkBook = xlsApp.Workbooks.Add
Set xlsSheet = xlsWorkBook.Sheets(1)
然后可以进行一系列的操作,比如:
for k=1 to 10
xlsSheet.Cells(2+k, 10).Value = k
next
xlsSheet.Columns(1).ColumnWidth = 2
xlsSheet.Columns(2).ColumnWidth = 3
还有就是创建图表:
xlsSheet.ChartObjects.Add xlsSheet.Columns(2).Left, xlsSheet.Rows(8).Top, 603, 332
Set xlsChart = xlsSheet.ChartObjects(1).Chart
然后对图表对象进行操作,省略大部分程序
xlsChart.ChartType = 51 'xlColumnClustered
……

最后用文件对象删除目标文件,并保存当前文件
Set fsExcel=server.CreateObject("Scripting.FileSystemObject")
filename=server.MapPath(".") & "\MyExcelFile.xls"
if fsExcel.FileExists(filename) then
fsExcel.DeleteFile filename, true
end if
xlsSheet.SaveAs filename
xlsApp.quit
Response.Write "<script language=javascript>window.location.replace('MyExcelFile.xls')</script>"

如果出错就一定是在Set xlsApp = server.CreateObject("Excel.Application")这一行出错的。
回复
walkingpoison 2002-07-23
我的程序下面加了xlsApp.quit这样的语句了。如果程序运行正常,Excel的进程就会释放。如果运行失败的话,就会有一个多余的Excel进程。不过最多只有一个,这个时候不论如何执行程序,都会失败。
还有一个现象,就是每次执行的时候,服务器就会跳出一个出错的对话框,我想这个应该就是Excel调用失败跳出来的框
回复
hwstu 2002-07-23
我以前遇到过这个问题,要不你先把你的代码发到我的邮箱hwstu@sohu.com我看看。
生成excel的方法有很多,一个重要的因数是看看你的客户是否要用到宏。
如果只是数据可以用最简单的方法搞定,写到一个表格,然后把扩展名改为xls这个最节约资源:)
另外如果你要把图片(饼图等)等写到excel当中,有一些简单的方法,让程序写到用户自己的机器上,这个是一个思路。
如果是有宏什么的,必须要用excel格式有很多方法,关键还是独自前行说的要关掉excel的相关进程,注意excel不是数据库,所以你写的时候一定要很小心,我以前也为这个问题搞了个半死!!
回复
walkingpoison 2002-07-23
不是这样的问题,我程序最后面都加上了xlsApp.quit语句的。
问题在于,有的时候第一次执行程序也会出现问题
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告