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

作者&投稿:胡叙 (若有异议请与网页底部的电邮联系)
在asp中如何把页面中的表格保存成word~

导EXCEL行不行??

我自己写的














<%'////////////////////////////////////////////////FSO操作/////////////////////////////////////
'判断文件夹是否存在
Function FolderExits(Folder)
Folder=Server.Mappath(Folder)
Set FSO= Server.CreateObject("Scripting.FileSystemObject")
IF FSO.FolderExists(Folder) Then
FolderExits=true
Else
FolderExits=false
End IF
End Function
'判断文件是否存在
Function FileExits(FileName)
FileName=Server.Mappath(FileName)
Set FSO= Server.CreateObject("Scripting.FileSystemObject")
IF FSO.FileExists(FileName) Then
FileExits=true
Else
FileExits=false
End IF
End Function
'创建文件夹
Function CreateFolder(Folder)
on error resume next
Folder=Server.Mappath(Folder)
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
FSO.CreateFolder(Folder)
if err>0 then
err.clear
CreateFolder=False
else
CreateFolder=True
end if
End function
'创建文件
Function CreateFile(FileName,Content)
on error resume next
FileName=Server.Mappath(FileName)
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
set fd=FSO.createtextfile(FileName,true)
fd.writeline Content
if err>0 then
err.clear
CreateFile=False
else
CreateFile=True
end if
End function
'删除文件
function DeleteFile(FileName)
on error resume next
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
if FSO.FileExists(FileName) then
FSO.DeleteFile FileName,true
end if
if err>0 then
err.clear
DeleteFile=False
else
DeleteFile=True
end if
end function
'删除文件夹
function DeleteFolder(Folder)
on error resume next
Folder=server.MapPath(Folder)
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
if FSO.FolderExists(Folder) then
FSO.Deletefolder Folder,true
end if
if err>0 then
err.clear
Deletefolder=False
else
Deletefolder=True
end if
end function
%>
<%if request("t")="yhq" then
dim sql,filepath,fs,myfile,x,link

Set fs = server.CreateObject("scripting.filesystemobject")
'--假设你想让生成的EXCEL文件做如下的存放
'temp=Server.MapPath("untitled2.asp") '获取index.asp主页所在路径。
' path=Left(temp,len(temp)-9) '获取路径字符串。
'filename = "books.xls" '指定Excel文件名。
filepath = Server.MapPath("excel/"&request.Cookies("mdsusername")&".xls") '生成Excel文件名及路径。
'--如果原来的EXCEL文件存在的话删除它
if fs.FileExists(filepath) then
fs.DeleteFile(filepath) '删除已经存在的同名文件。
end if
'--创建EXCEL文件
m_username=request.Cookies("mdsusername")
set myfile = fs.CreateTextFile(filepath,true)
Set rs = Server.CreateObject("ADODB.Recordset")
'--从数据库中把你想放到EXCEL中的数据查出来
if request("action")="search" then
if request("id")=1 then
Sql="select * from quanlist where q_m_id='"&m_username&"' and q_ok=0 order by q_time DESC"
else
Sql="select * from quanlist where q_m_id='"&m_username&"' and q_ok=1 order by q_time DESC"
end if
else
Sql="select * from quanlist where q_m_id='"&m_username&"' order by q_time DESC"
end if
rs.Open sql,conn,1,3

recnum=rs.recordcount '获取记录数。

if rs.EOF and rs.BOF then
else
'######################开始写入###################
dim strLine,responsestr
strLine=""
fieldnum=0
myfile.writeline chr(9)&chr(9)&"优惠券领取使用情况表"'此处可定义Excel标题
'For each x in rs.fields
' strLine= strLine & x.name & chr(9) 'chr(9)是指的水平方向上的制表符。
fieldnum=fieldnum+1 '获取字段数。
'Next
strLine="使用状态"& chr(9)&"用户名"&chr(9)&"领取时间"&chr(9)&"使用时间"&chr(9)&"联系方式"
'--将表的列名先写入EXCEL
myfile.writeline strLine
Do while Not rs.EOF
strLine=""
if rs("q_ok")=0 then
strLine="未使用"& chr(9)
else
strLine="已使用"& chr(9)
end if
if checkusername(request.Cookies("mdsusername"),rs("q_weixinnumber"))"" then
strLine=strLine&checkusername(request.Cookies("mdsusername"),rs("q_weixinnumber"))& chr(9)
else
strLine=strLine&rs("q_weixinnumber")& chr(9)
end if
strLine=strLine&rs("q_time")& chr(9)
strLine=strLine&rs("q_oktime")& chr(9)
strLine=strLine&checkuserphone(request.Cookies("mdsusername"),rs("q_weixinnumber"))&chr(9)


myfile.writeline strLine
rs.MoveNext
loop

end if
rs.Close
set rs = nothing
conn.close
set conn = nothing
set myfile = nothing
Set fs=Nothing
'读取写入信息此操作本地成功远程提示没有'CreateObject'权限
set objExcelApp = CreateObject("Excel.Application")
objExcelApp.DisplayAlerts = false '不显示警告
objExcelApp.Application.Visible = false '不显示界面
objExcelApp.WorkBooks.Open(filepath)
set objExcelBook = objExcelApp.ActiveWorkBook
set objExcelSheets = objExcelBook.Worksheets
set objExcelSheet = objExcelBook.Sheets(1)
response.write ""
for i=1 to recnum+1
response.write ""
for j=1 to fieldnum
If i=1 Then
response.write ""&objExcelSheet.Cells(i,j).value&chr(9)&""
Else
response.write ""&objExcelSheet.Cells(i,j).value&chr(9)&""
End If
next
response.write ""
next
response.write ""
objExcelApp.Quit ' 一定要退出
set objExcelApp = Nothing
response.Write "生成Excel文件成功,点击"
Response.Write "下载"
response.Write " "
response.Write "返回"
end if%>


你研究下

用ActiveX吧。可以试试看Excel.Application(安装Excel的情况下),具体代码与Excel的宏命令类似,录制一个宏研究一下就成,能做到的。
可以参考这里(假设你使用VBScript):http://www.yesky.com/20030217/1652372.shtml
PS:那是VB6源代码,不过和ASP差不到哪里去。
不过如果用ActiveX的话效率不太高哦,而且会占用一定的内存,不建议在使用频率高的功能中用到。

首先

一、配置方法

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
%>
----------------------------------------------------------------------------------------------------------------

这种方式不成。

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

直接显示没有这个功能。

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

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>"
%>


硕方sp650标牌机word中怎么编辑
如果打印的内容无标题,则一次按照顺序编辑打印内容即可。Excel编辑页面 图 1 中,第一行的内容为每张标牌的标题,从第 2 行开始的内容依次为每张标牌标题后要打印的内容。编辑好打印内容后,将文件存档。打开 sp 编辑软件,点“文件”选“材料选项”设置标牌类型及尺寸参数,如将标牌设定为“32*68”...

苹果6spuslid如何设置自己的ID
设置apple id教程:1.在 iPhone 主屏上找到“App Store”图标,点击打开 2.打开 App Store 应用商店以后,用手指向上滑动,点击底部的“登录”按钮 3.在弹出的选项菜单中,点击“创建新 Apple ID”选项 4.在选择国家和地区页面,默认是中国,点击“下一步”继续 5.在条款与隐私页面,直接点击“下...

苹果6sp怎么刷机?
苹果手机刷机方法;1、在电脑上下载iTunes软件,并打开 2、让iPhone处于关机状态,3、用数据线连接手机和电脑,4.按电源键开机,屏幕会出现苹果标志,不要松开电源键,5.再按住主屏Home键,直到屏幕黑屏,6.当屏幕黑屏时,松开电源键,继续按住主屏Home键不要松开,直到电脑端的iTunes出现检测到一个处于...

sp文件格式用其他软件打开,如何恢复原状
1、首先打开电脑,并点击主页面上的sp文件。2、其次进入主页面,寻找右上角的关闭按钮。3、最后点击关闭按钮,重新点击sp文件即可恢复。

金仿苹果6sp锁屏页面是红色的要怎么弄?
双清就清除数据,清除缓存的意思,操作的话就是开机状态下进设置-关于手机-系统更新,按菜单键选择“重启进入recovery”等待手机重启进入recovery,recovery中用音量键选择,电源键确定,选择清除数据。。。什么是双清,安卓手机如何双清?对于刚接触安卓手机的同学来说是比较模糊的概念,那到底wipe是什么意思呢...

sp610pos机设置密码
步骤一:进入菜单 在SP610POS机上,按下“菜单”按钮。进入后,您会看到各种选项。找到“管理”选项,并点击进入。步骤二:进入设置 在管理选项中,找到“系统设置”选项,并点击进入。在系统设置中,您需要输入密码才能进入。因为这还没有设置密码,所以您可以直接点击&...

sp角色补给卡在哪里使用
崩坏3rd补给常见疑问解答A:标配补给卡和精准补给卡分别用于【补给】中的【标配补给】和【精准补给】。舰长达到9级时,【标配补给】和【精准补给】才会开放。在补给页面中也可以直接购买补给卡哦~Q:单抽有没有保底?A:有。A:扩充补给是帮助舰长更加便捷、精准的获取新角色和稀有角色的一种全新的补给...

GBAsp 怎么进入游戏页面?打开后就这个样子
一般出现这个界面后会自动进入游戏,有时候卡带没插好就会卡在这里,多插几次就可以了,如果每次都不行的话就是卡带问题了,或者机子的问题

如何解决苹果6sp手机外放声音突然没有的问题
有的小伙伴在使用iPhone6sp苹果手机时,发现外放的声音突然没有了,但是却不知道如何解决这一问题,那么小编就来为大家介绍一下吧。方法一:开启助听器功能1.第一步,点击并打开设置应用。2.第二步,来到设置页面后,滑动页面,点击箭所指的通用选项。3.第三步,在下图所示的通用页面中,点击箭头所指...

?怎么样安装系统SP的?我是新手啊~!
你说的是安装Windows XP吧!如何全新安装XP系统(SP1同SP2安装方法相同)第一步,设置光盘启动:所谓光盘启动,意思就是计算机在启动的时候首先读光驱,这样的话如果光驱中有具有光启功能的光盘就可以赶在硬盘启动之前读取出来(比如从光盘安装系统的时候)。设置方法:1.启动计算机,并按住DEL键不放,直到...

宣恩县15812075666: asp怎么在页面载入excel文件内容 -
通贪替卡: 两种方法1.拿execl当做数据库来读取2.可以把excel另存为网页文件,就可以当做文本文件处理了,里面代码可以找到处理规律.附上处理excel文档的asp代码(就是第一条的方法)setconn2=CreateObject("ADODB.Connection")conn2.Open...

宣恩县15812075666: 如何用ASP对EXCEL表进行写入数据 -
通贪替卡: 在运行中打oleview.exe,找到“Microsoft excel应用程序”,选择“activation”,选中“launch as Interactive user”.然后写代码例如: Set xl = server.createobject("Excel.Application")filename=server.MapPath("document/test.xls") xl....

宣恩县15812075666: 在ASP中怎么把页面中的数据导出到EXCEL -
通贪替卡: <!--#include file="conn.asp"--> <HTML> <HEAD> <meta content="text/html; charset=gbk" http-equiv="Content-Type"> <TITLE>生成EXCEL文件</TITLE> </HEAD> <body> <hr size=1 align=left width=300px> <% dim rs,sql,filename,fs,myfile,...

宣恩县15812075666: 怎么在asp网页上的加入数据导出excel -
通贪替卡: WEB页面导出为EXCEL文档的方法单元格A单元格A单元格A单元格A单元格合并行A单元格B单元格B单元格B单元格B单元格合并行B

宣恩县15812075666: 怎样从ASP网页读取内容到EXCEL -
通贪替卡: '提供思路供你参考(我自己是这样做的^_^)'最简单的办法是使用摸板替换的方法,类似网上自动生成HTML页面,但你生成的是EXCEL文件,原理是一样的都是替换模板中的预定字符串为指定数据,然后用FSO写到目录的 指定文件中.先用...

宣恩县15812075666: 如何把一个Excel文件放到ASP页面中去 -
通贪替卡: 很简单,只需建立一个 worksheet 和 Excel 相关的信息就可以了,具体代码见下:set xlApp = Server.CreateObject("Excel.Application") xlApp.Visible = false ' 使服务端不出现 Excel 窗口 set myWorkbook = xlApp.Workbooks.Add ' 建立一个 ...

宣恩县15812075666: 如何将网页分页数据一次导入excel中 -
通贪替卡: 需要写代码. 第一种是,修改 查询代码,查询后直接写入 excel .最简单快捷了 第二种是,将分页内容读取后写入 excel (很显然这个麻烦多了).最关键是,excel支持 2000多页吗?不行.所以,需要把多页写入 1个sheet,当这个sheet满后,写下一个sheet

宣恩县15812075666: asp.net中怎样将一维数组写入Excel中去 -
通贪替卡: 目录 一、 环境配置 二、 ASP对Excel的基本操作 三、 ASP操作Excel生成数据表 四、 ASP操作Excel生成Chart图 五、 服务器端Excel文件浏览、下载、删除方案 六、 附录 正文 一、 环境配置 服务器端的环境配置从参考资料上看,微软系列的配...

宣恩县15812075666: asp如何实现web页面中的表格数据导出到Excel中 -
通贪替卡: 很简单就两句话 在页面最底部加上 Response.ContentType ="application/vnd.ms-excel" 'application/msword Response.Addheader "Content-Disposition", "attachment;Filename="&kname&".xls"

宣恩县15812075666: ASP网页上查询的数据如何输出到EXECL中? -
通贪替卡: 可以不用任何activexobject组件 直接在asp页面中,把ds转换成cvs文本格式,写到客户端就可以了,而cvs文件的默认打开程序就是excel

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网