asp页面中如何直接写入EXCL、WORD 80

后台数据库中存有EXCL、WORD的BLOB数据需要直接在ASP页面里写入,并不是显示“下载”我需要了解哪些部分的知识,或者能否提供有帮助的网页,控件,谢谢我需要的是将E... 后台数据库中存有EXCL、WORD的BLOB数据
需要直接在ASP页面里写入,并不是显示“下载”
我需要了解哪些部分的知识,或者能否提供有帮助的网页,控件,谢谢
我需要的是将EXCL写入到ASP页面,并不是ASP页面保存EXCL表,也就是说不通过下载的方式,直接将EXCL页面嵌套在网页里 。
2楼的例子我看了,还是一个需要
“打开”才能显示EXCL的例子,我需要的是直接将表格或文档输出在页面的,这个还是利用页面打开。
展开
 我来答
maoniu_
2009-06-11
知道答主
回答量:48
采纳率:0%
帮助的人:27.9万
展开全部
首先

一、配置方法

1、开始---运行---dcomcnfg

2、组件服务---计算机---我的电脑---dcom配置---microsoft excel应用程序(右键)---属性---安全

3、启动和激活权限 选择自定义,点击编辑,添加用户everyone并给予所有权限

4、访问权限、配置权限同上

二、asp对excel的基本操作

1、建立excel对象

set objexcelapp = createobject("excel.application")
objexcelapp.displayalerts = false '不显示警告
objexcelapp.application.visible = false '不显示界面

2、新建excel文件

objexcelapp.workbooks.add
set objexcelbook = objexcelapp.activeworkbook
set objexcelsheets = objexcelbook.worksheets
set objexcelsheet = objexcelbook.sheets(1)

3、读取已有excel文件

straddr = server.mappath(".")
objexcelapp.workbooks.open(straddr & "\templet\table.xls")
set objexcelbook = objexcelapp.activeworkbook
set objexcelsheets = objexcelbook.worksheets
set objexcelsheet = objexcelbook.sheets(1)

4、另存excel文件

objexcelbook.saveas straddr & "\temp\table.xls"

5、保存excel文件

objexcelbook.save(笔者测试时保存成功,页面报错。)

6、退出excel操作

objexcelapp.quit '一定要退出
set objexcelapp = nothing

第二,asp对word的操作

--------------------------------------------------------------
creatdoc.asp
<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 3.2 Final//EN">
<HEAD>
<TITLE>精彩春风之创建Word文件</TITLE>
<META HTTP-EQUIV="Refresh" CONTENT="30;URL='orderForm.asp'">
</HEAD>
<%
dotLocation="'servernamedirectory heTemplate.dot'"
intRowCount = Request.Form("rowCount")
' 初始化行计数
%>
<BODY Language="VBScript" onLoad="creatdoc document.theForm,
<%=dotLocation%>,intRowCount>
<FORM NAME="theForm">
----------------------------------------------------------------------------------------------------------------
在Body标记中对onLoad调用,调用creatdoc VB脚本子程序,向它传递3个参数:页面中表单的内容(所有的隐含域)、Word模板文件的位置、从输入表单中收到的行数.读所有的输入表单域,然后当页面装载后调用creatdoc子程序
<%
itemCount = 0
' 设置域计数器为0
For Each Item in Request.Form
' 总计表格域
itemCount = itemCount + 1
' 使用For..Next 循环
%>
<INPUT TYPE="hidden" NAME="<%=Item%>" VALUE="<%=Request(Item)%>">
<% Next %>
<INPUT TYPE="hidden" NAME="numbRows" VALUE="<%=intRowCount%>">
<INPUT TYPE="hidden" NAME="fieldCount" VALUE="<%=itemCount%>">
</FORM>
</BODY>
</HTML>
----------------------------------------------------------------------------------------------------------------
开始创建一个Word 文件对象. 在Internet Explorer 4以上版本中,要将浏览器的安全性设置为Low或 Custom
<%
Set objWordDoc = CreateObject("Word.Document")
ObjWordDoc.Application.Documents.Add theTemplate, False
ObjWordDoc.Application.Visible=True
%>
----------------------------------------------------------------------------------------------------------------调整数组的维数使它与网页表单所包含的行数相同.将Y轴设为4个常量,这是输出文件中所需要的栏数,X轴包含从表单中接收的行数
<% Redim Preserve theArray(4,intTableRows) %>
----------------------------------------------------------------------------------------------------------------开始检查所有的表单行.在所有输入的网页表单域中循环,收集每个表单域名及其相应的值.逐个检查并将其放入相应的数列元素内.在此,我们使用了不确定编码的CASE选择
<%
For intCount = 0 to frmData.fieldCount.value
strOkay = "Y"
strSearch = frmData.elements(intCount).name
' 装入表单域名
strValue = frmData.elements(intCount).value
' 装入表单域值
strPosition = Instr(1,strSearch,"_")
intStringLen=strPosition-1
If intStrLen > 0 Then
strLeft = Left(strSearch,intStringLen)
strRight = Right(strSearch,(Len(strSearch)-Len(strLeft)-1))
Select Case strLeft
' Select Case命令决定表单域属于哪一列
Case "SKU" intArrayY=0
Case "description" intArrayY=1
Case "price" intArrayY=2
Case "quantity" intArrayY=3
End Select
IntArrayX = strRight
If strOkay <> "N" Then
TheArray(intArrayY, intArrayX) = strValue
End If
End If
Next
%>
---------------------------------------------------------------------------------------------------------------- 开始创建文件
<%
Set rngCurrent = objWordDoc.Application.ActiveDocument.Content
' 对于激活的文件,用变量rngCurrent设置Word文件对象RANGE,这是为了防止用户打开另一个文件
Set tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add
rngCurrent,intNumrows,4)
' 通过指定表格的位置( rngCurrent)以及行、列的数目来确定其大小
%>
----------------------------------------------------------------------------------------------------------------
向往表格里装入数据.
<%
For j = 1 to intTableRows
' 首先指到第一行row(tabRow=1), 逐行循环.在每行结尾处插入回车[Chr(10)],以产生行间空行,使行计数器增加
ObjWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Borders.Enable=False

objWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Cells(1).Range.InsertAfter
theArray(1,j)

objWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Cells(2).Range.InsertAfter
theArray(2,j)

objWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Cells(3).Range.InsertAfter
FormatCurrency(theArray(3,j))
' 用FormatCurrency 输出美圆值以保证使用$符号、逗号、小数点的位置
objWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Cells(4).Range.InsertAfter
theArray(4,j)

objWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Cells(4).Range.InsertAfter
Chr(10)

objWordDoc.Applicatoin.ActiveDocument.Tables(1).Rows(tabRow).Cells(3).
Range.ParagraphFormat.alignment=2
' 在ParagraphFormat. alignment=2处设置栏数来实现美圆数量的正确调整

tabRow = tabRow + 1

Next
%>
----------------------------------------------------------------------------------------------------------------
指定模板位置,结束子程序
<%
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.
InsertAfter("Thank you for shopping at Acme Co., and please come again!")
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.InsertAfter(" ")
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.InsertAfter(" ")
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.InsertAfter("Regards,")
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.InsertAfter(" ")
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.
InsertAfter("Daryl B. Morticum")
objWordDoc.Application.ActiveDocument.Paragraph.Add.Range.
InsertAfter("Sales Associate")
End Sub
%>
----------------------------------------------------------------------------------------------------------------

参考资料: http://hi.baidu.com/maoniu_1/blog/item/4d8b8235ac7880335ab5f5eb.html

798766
2009-06-08 · TA获得超过1817个赞
知道大有可为答主
回答量:3750
采纳率:0%
帮助的人:2930万
展开全部
这种方式不成。

asp如果要显示必须先把doc和xls输出为web格式。

直接显示没有这个功能。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户12870
2009-06-08
知道答主
回答量:48
采纳率:0%
帮助的人:0
展开全部
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sonichu
2009-06-08 · TA获得超过508个赞
知道小有建树答主
回答量:375
采纳率:100%
帮助的人:315万
展开全部
ASP具备动态输出任一Office应用程序文件格式的功能。在开始编写代码之前,我们首先需要做的就是设置正确的文件类型,因为浏览器需要知道如何处理文件。第二步是编辑文件名称,我们可以使用HTML和CSS来创建Word文档或Excel文档的样式。

下面这段例子代码可用于在线创建Word文档。

以下是引用片段:
<%
Response.ContentType = "application/msword"
Response.AddHeader "Content-Disposition", "attachment;filename=NAME.doc"???
response.Write("Dotnetindex.com : <a href=""http://www.dotnetindex.com"">Visit Site</a><br>" & vbnewline)
response.Write("<h1>We can use HTML codes for word documents</h1>")
response.Write ("<div style=""padding:4px; font:11px arial"">CSS can be used tooo</span>")
%>

下面这段例子代码可用于在线创建Excel文档。

以下是引用片段:
<%
Response.AddHeader "Content-Disposition", "attachment;filename=members.xls"
Response.ContentType = "application/vnd.ms-excel"
response.write "<table width="100%" border="1" >"
response.write "<tr>"
response.write "<th width=""40%""><b>Name</b></th>"
response.write "<th width=""30%""><b>Username</b></th>"
response.write "<th width=""30%""><b>Password</b></th>"
response.write "</tr>"
response.write "<tr>"
response.write "<td width=""40%"">Scud Block</td>"
response.write "<td width=""30%"">scud@gazatem.com</td>"
response.write "<td width=""30%"">mypassword</td>"
response.write "</tr>"
response.write "</table>"
%>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式