ASP中生成EXCEL报表时的问题 很急 在线等待 问题不难 各位大虾帮忙啊!

dihai2000 2002-12-04 05:04:57
ASP中生成EXCEL报表时的问题
我用
Set xlApp = SERVER.CreateObject("EXCEL.APPLICATION")
时却出现
错误类型:
服务器对象, ASP 0178 (0x80070005)
检查权限时Server.CreateObject 的调用失败。对此对象的访问被拒。

不知到该如何改呢?请问有没有完整一点的ASP输出成EXCEL报表的原代码
详细一点的文章或是例子 谢谢大家 多多指教 马上加分!

...全文
36 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
walkingpoison 2002-12-06
  • 打赏
  • 举报
回复
楼主如果你需要了解Excel里面各种对象的含义,你可以参考msdn里面office开发的部分,或者vba的帮助。
简单来说Workbook对象是工作簿对象,即一个Excel文件。Worksheet是工作表对象,一个工作簿可以包含多个工作表。你如果需要写入数据,就是要对工作表里面的单元格进行操作。具体的你还是去参考帮助吧。
至于你所说的问题,一般说来如果Application对象创建成功的话,不会在创建workbook对象或者worksheet对象的时候出错,你可以把你的错误发上来看看。
vbdelphi 2002-12-06
  • 打赏
  • 举报
回复
楼主,你把下面的代码你本机上运行一下,看看有什么结果,是不是太简单,根本不用建什么对象的,直接就可以生成EXCEL工作表了,至于格式就自己弄弄吧,。希望对你有所帮助。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<% Response.ContentType = "application/vnd.ms-excel" %>
<HTML>
<HEAD>
</HEAD>
<BODY>
<TABLE>
<TR>
<TD>2</TD><!--- Cell : A1 --->
<TD>4</TD><!--- Cell : B1 --->
</TR>
<TR>
<TD>5</TD><!--- Cell : A2 --->
<TD>6</TD><!--- Cell : B2 --->
</TR>
</TABLE>
</BODY>
</HTML>
walkingpoison 2002-12-06
  • 打赏
  • 举报
回复
dcom的具体配置方法如下:
1.开始--运行--输入dcomcnfg回车
2.切换到默认安全机制选项卡,对默认访问权限和默认启动权限都添加IUSR_<机器名>,然后确定就可以了。

dihai2000 2002-12-06
  • 打赏
  • 举报
回复
楼上的兄弟多谢了 当我 Set xlSheet1 = server.CreateObject("Excel.Sheet") 时 会出现
错误类型:
服务器对象, ASP 0177 (0x80010105)
服务器出现意外情况。
/etsd/asp/ms0025.asp, 第 1250 行
可是这种错误谁也看不懂啊 是不是还是dcomcnfg权限没设置好呢
帮忙看看 就快结贴散分了。
ken007 2002-12-05
  • 打赏
  • 举报
回复
一般調用excel都不用特別設定權限的。不過我建議你重裝excel。﹗
逍遥小贼 2002-12-05
  • 打赏
  • 举报
回复
同意standy(天下无双) 的说
standy 2002-12-05
  • 打赏
  • 举报
回复
楼上的我认为默认访问权限就应该可以吧
dihai2000 2002-12-05
  • 打赏
  • 举报
回复
楼上的大哥说得对 是权限的问题
用了dcomcnfg.exe配置好之后
Set xlApp = CreateObject("EXCEL.APPLICATION")
是没错了
可是
Set xlBook = xlApp.Workbooks.Add
Set xlSheet1 = xlBook.Worksheets(1)
又出错了 哪位大虾可以讲讲这两句是什么意思吗?
怎么调试过去呢?言者有分!
walkingpoison 2002-12-05
  • 打赏
  • 举报
回复
确实是权限的问题,默认的权限是不能访问的。请调整dcom的设置吧(方法就是上面nzzt(nzzt)说的,补充一点,你需要添加的账号是IUSR_<机器名>)。
jery_lee 2002-12-05
  • 打赏
  • 举报
回复
restart your computer!!!
nzzt 2002-12-04
  • 打赏
  • 举报
回复
这是因为IIS没有权限调用Excel的缘故。
运行dcomcnfg.exe,配置Excel的“安全性”->默认访问权限,默认启动权限,默认配置权限为“自定义”,并在可访问用户中添加上IIS的帐号就OK啦
dihai2000 2002-12-04
  • 打赏
  • 举报
回复
To x101102
不好意思也 我有这个例子 也照它做了
有错误
不过我不想用RDS
我只想用Set xlApp = SERVER.CreateObject("EXCEL.APPLICATION")
不知这样调用为什么会出错误呢?
不过还是谢谢你的回答 一定给你加分
x101102 2002-12-04
  • 打赏
  • 举报
回复
下面这个列子可以调试成功的
  在进行ASP网站开发时,有时需在客户端调用MSSQL数据库的数据进行打印,若调用数据量小,可以通过在客户端运用FileSystemObject生成文件对象的方法实现打印,这里不再赘述。若需调用大量数据,可在客户端脚本中实例化RDS.DataSpace(Remote Data Service)对象,并采用远程提供程序通过ASP网站访问MSSQL数据库(设置成只能通过RDS Default Handler或自定义商业对象才能访问数据库,可保证数据库的安全),再在客户端实例化EXCEL.APPLICATION对象,把数据集中的数据写入EXCEL中,再进行保存或打印。代码如下:

<html>

<head>

<META content="text/html; charset=gb2312" http-equiv=Content-Type>

<title>客户端电子表格打印</title>

</head>

<body bgColor=skyblue topMargin=5 leftMargin="20" oncontextmenu="return false" rightMargin=0 bottomMargin="0">

<div align="center"><center>

<table border="1" bgcolor="#ffe4b5" style="HEIGHT: 1px; TOP: 0px" bordercolor="#0000ff">

<tr>

<td align="middle" bgcolor="#ffffff" bordercolor="#000080">

<font color="#000080" size="3">

客户端电子表格打印

</font>

</td>

</tr>

</table>

</div>

<form name="myform">

<DIV align=left>

<input type="button" value="Excel Report" name="report" language="vbscript" onclick="fun_excel()" style="HEIGHT: 32px; WIDTH: 90px">

</div>

</form>

</body>

</html>

<script language="vbscript">

sub fun_excel()

Dim rds,rs,df

dim strCn,strSQL,StrRs

Dim xlApp, xlBook, xlSheet1

set rds = CreateObject("RDS.DataSpace")

Set df = rds.CreateObject("RDSServer.DataFactory","http://192.168.0.1") '192.168.0.1 为WEB服务器IP地址

strcn="provider=ms remote;remote server=http://192.168.0.1;handler=msdfmap.handler;data source=pubsdatabase;" '192.168.0.1 为WEB服务器IP地址

strsql= "getalljobs"

Set rs = df.Query(strCn, strSQL)


Set xlApp = CreateObject("EXCEL.APPLICATION") '注意不是:Server.CreateObject("EXCEL.APPLICATION")

Set xlBook = xlApp.Workbooks.Add

Set xlSheet1 = xlBook.Worksheets(1)

xlSheet1.cells(1,1).value ="职务表"

xlSheet1.range("A1:D1").merge

xlSheet1.cells(2,1).value = "job_id"

xlSheet1.cells(2,2).value = "job_desc"

xlSheet1.cells(2,3).value = "max_lvl"

xlSheet1.cells(2,4).value = "min_lvl"

cnt =3

do while not rs.eof

xlSheet1.cells(cnt,1).value = rs("job_id")

xlSheet1.cells(cnt,2).value = rs("job_desc")

xlSheet1.cells(cnt,3).value = rs("max_lvl")

xlSheet1.cells(cnt,4).value = rs("min_lvl")

rs.movenext

cnt = cint(cnt) + 1

loop

xlSheet1.Application.Visible = True

end sub

</script>

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧