asp调用Excel出现的问题(解决加分)
上午就发了一个相关的帖子,不知道是分少的原因还是什么别的原因竟没人理我,呜、呜、呜。
查找了一下本论坛中有不少关于asp中调用excel的问题,尝试着做不行,直接靠原代码还是不行。现在主要把出现的问题列出来,看那位兄弟可以帮解决一下。
1."0x6dde20e5"指令引用的"0x00000000"内存,该内存不能为"read"
我只是写了一行代码
<% set app = createobject("excel.application") %>
运行后就出现如上的提示,我在个别机器上运行是这种效果,在其它机器上运行就没这个问题,不知道是什么原因,谁知道。
2.新建的excel文件没有打开
<%
set app = createobject("excel.application")
set book = app.workbooks.add
set sheet = book.worksheets(1)
app.visible = true
sheet.activate
app.cells(1,1)="ok"
%>
我不知道以上代码是否在asp中可以打开一个excel文件,并在A1中写下"ok",但我在VB中写出类似的代码就可以。
3.excel无法关闭
<%
On Error Resume Next
set app = createobject("excel.application")
set book = app.workbooks.add
set sheet = book.worksheets(1)
app.cells(1,1)="ok"
book.saveas("c:\aa.xls")
book.close
app.quit
set sheet = nothing
set book = nothing
set app = nothing
%>
文件到是可以建立,但无法打开。出现提示找不到文件”c:\aa.xls“(或它的组件之一)。请确定路径和文件名是否正确,而且所需的库文件均可用。
以上情况出现时在任务管理器的进程中都会发现无法终止的excel进程。同时我已经通过在命令行键入“DCOMCNFG”,则进入COM组件配置界面设置了excel的自定义属性了。这些问题我好象只看到一个人问过,不知道各位是否也碰到过这样的问题。
问题点数:100、回复次数:5Top
1 楼shadow06(shadow06)回复于 2003-03-03 23:53:06 得分 70
http://expert.csdn.net/Expert/TopicView1.asp?id=1454452
你好,我的文章中有这么一句话“编辑中将Everyone加入所有权限”,很多人没有仔细看,在“安全性”的第三项权限编辑中Everyone缺省情况是加入读取权限,注意此处必须改为完全控制。我想你应该是这里出现了问题。
关于Excel进程必须重启动才能关闭的问题,我在大连NEC公司沙课长那里学了很有用的一招。那就是机器上如果安装了C或其他二进制调试器,那么任务管理器中将允许对进程进行调试,这时只需选择调试,然后在关闭调试器,则进程自然被调试器杀死。Top
2 楼xpm96()回复于 2003-03-04 08:53:47 得分 30
保证可以使用,给分吗?
<%
set xlApp = Server.CreateObject("Excel.Application")
'使服务端不出现Excel窗口
xlApp.Visible = false
'建立一个worksheet
set myWorkbook = xlApp.Workbooks.Add
set myWorksheet = myWorkbook.Worksheets(1)
n=1
for i=T2 to T3 step T4
vv="A"&n
myWorksheet.Range(vv).Value=i
n=n+1
next
for j=0 to ubound(C1)
n=1
for i=T2 to T3 step T4
yy="A"&n
vv=replace(T1(j),"x",yy)
myWorksheet.cells(n,j+2)=trim(vv)
n=n+1
next
next
xlApp.charts.add
xlApp.ActiveChart.ChartType = 75
xlApp.ActiveChart.SetSourceData xlApp.Sheets("Sheet1").Range("A1:E300"),2
xlApp.ActiveChart.Location xlLocationAsObject,"Sheet1"
With xlApp.ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
i=now
response.write i
yy=Year(i)
mm=Month(i)
dd=Day(i)
hh=Hour(i)
ff=Minute(i)
ss=Second(i)
i=yy&mm&dd&hh&ff&ss
strFullPath="e:\try\"&i&".xls"
myWorkbook.SaveAs(strFullPath)
'关闭Excel
myWorkbook.Close
set myWorksheet = Nothing
set myWorkbook = Nothing
xlApp.Quit
response.write "<a href=http://ycxpm/try/"&i&".xls>查看</a>"
response.write "<br>"
response.write "要保存单击右键选择'目标另存为..'"
%>
Top
3 楼zglnsy(菜鸟)回复于 2003-03-04 09:11:58 得分 0
xpm96,你给我的代码不完整吧。T2、T3、T4是什么?Top
4 楼zglnsy(菜鸟)回复于 2003-03-04 09:19:52 得分 0
shadow06,按照你说的地方调整了一下,这次好用了,非常感谢。我发现网上有不少这样的例子,正常情况下肯定没有问题,但一些细节性的地方没有指出来,导致一些初学者很长时间都不知道该怎样做。希望以后各位高手们发帖时注意照顾一下菜鸟们。Top
5 楼xpm96()回复于 2003-03-04 09:22:46 得分 0
完整的如下:
前面一个的asp文件:
<!--#include file="adovbs.inc" -->
<%Response.Expires=0%>
<%
on error resume next
C1=split(request("C1"),",")
%>
<html>
<head>
</head>
<body>
<form method="POST" action="chart4_1.asp">
<%for i=0 to ubound(C1)%>
<p><%=C1(i)%>=<input type="text" name="T1" size="68"><input type=hidden name="C1" value=<%=C1(i)%>></p>
<%next%>
<p>起始值<input type="text" name="T2" size="6"> 结束值<input type="text" name="T3" size="6">
刻度<input type="text" name="T4" size="6"></p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
</form>
<p>=1549.8*3/(X*18*0.4-140)</p>
</body>
</html>
调用execel的asp文件:
<!--#include file="adovbs.inc" -->
<%Response.Expires=0%>
<%
on error resume next
C1=split(request("C1"),",")
T1=split(request("T1"),",")
T2=request("T2")
T3=request("T3")
T4=request("T4")
%>
<%
set xlApp = Server.CreateObject("Excel.Application")
'使服务端不出现Excel窗口
xlApp.Visible = false
'建立一个worksheet
set myWorkbook = xlApp.Workbooks.Add
set myWorksheet = myWorkbook.Worksheets(1)
n=1
for i=T2 to T3 step T4
vv="A"&n
myWorksheet.Range(vv).Value=i
n=n+1
next
for j=0 to ubound(C1)
n=1
for i=T2 to T3 step T4
yy="A"&n
vv=replace(T1(j),"x",yy)
myWorksheet.cells(n,j+2)=trim(vv)
n=n+1
next
next
xlApp.charts.add
xlApp.ActiveChart.ChartType = 75
xlApp.ActiveChart.SetSourceData xlApp.Sheets("Sheet1").Range("A1:E300"),2
xlApp.ActiveChart.Location xlLocationAsObject,"Sheet1"
With xlApp.ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
i=now
response.write i
yy=Year(i)
mm=Month(i)
dd=Day(i)
hh=Hour(i)
ff=Minute(i)
ss=Second(i)
i=yy&mm&dd&hh&ff&ss
strFullPath="e:\try\"&i&".xls"
myWorkbook.SaveAs(strFullPath)
'关闭Excel
myWorkbook.Close
set myWorksheet = Nothing
set myWorkbook = Nothing
xlApp.Quit
response.write "<a href=http://ycxpm/try/"&i&".xls>查看</a>"
response.write "<br>"
response.write "要保存单击右键选择'目标另存为..'"
%>
Top




