作者:乔山办公网日期:
返回目录:excel表格制作
asp导出到excel
在开头加上这一句
Response.ContentType = "application/vnd.ms-excel"
如果导出结果为空白的,那就去掉它
一下是导出Excel代码
--------------------------------------------------------------------------------
<%
set rs=server.createobject("adodb.recordset")
sql="select * from provinceinfo where 1=1"
rs.open sql,objconn,1,1
Set ExcelApp =CreateObject("Excel.Application")
ExcelApp.Application.Visible = True
Set ExcelBook = ExcelApp.Workbooks.Add
ExcelBook.WorkSheets(1).cells(1,1).value ="用户表"
ExcelBook.WorkSheets(1).cells(2,1).value = "用户编号"
ExcelBook.WorkSheets(1).cells(2,2).value = "登陆名"
ExcelBook.WorkSheets(1).cells(2,3).value = "真实姓名"
ExcelBook.WorkSheets(1).cells(2,4).value = "密码"
cnt =3
do while not rs.eof
ExcelBook.WorkSheets(1).cells(cnt,1).value = rs("provinceid")
ExcelBook.WorkSheets(1).cells(cnt,2).value = rs("province")
ExcelBook.WorkSheets(1).cells(cnt,3).value = rs("flag")
ExcelBook.WorkSheets(1).cells(cnt,4).value = rs("id")
rs.movenext
cnt = cint(cnt) + 1
loop
Excelbook.SaveAs "d:\yourfile.xls" '这个是数据导出完毕以后在D盘存成文件
ExcelApp.Application.Quit '导出以后退出Excel
Set ExcelApp = Nothing '注销Excel对象
%>
因你数据量大 另提示EXCEL相关信息
Excel 07-2003一个工作表最多可有65536行,行用数字1—65536表示;最多可有256列,列用英文字母A—Z,AA—AZ,BA—BZ,……,IA—IV表示;一个工作簿中最多含有255个工作表,默认情况下是三e79fa5e98193e78988e69d83363个工作表;
Excel 2007及以后版本,一个工作表最多可有1048576行,16384列;
所以建议用2007以上版本的excel
ASP将ACCESS数据导出至EXCEL
<script for="window" event="onload">
window.resizeTo(400,300)
</script>
<%
set conn=Server.CreateObject("adodb.connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("../data/xin#tong.mdb")'//////链接数据库
conn.open connstr
dim rs,sql,filename,fs,myfile,x
Set fs=server.CreateObject("scripting.filesystemobject")
'--假设你想让生成的EXCEL文件做如下的存放e799bee5baa6e79fa5e98193e59b9ee7ad94332
filename=Server.MapPath(""&request("exit")&".xls")'/////数据表保存的文件名
'--如果原来的EXCEL文件存在的话删除它
if fs.FileExists(filename) then
fs.DeleteFile(filename)
end if
'--创建EXCEL文件
set myfile=fs.CreateTextFile(filename,true)
'///////从数据库中把你想放到EXCEL中的数据查出来
Set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from "&request("exit")&""
rs.open sql,conn,1,1
if not rs.EOF then
dim strLine,responsestr
strLine=""
For each x in rs.fields
strLine=strLine & x.name & chr(9)
Next
'--将表的列名先写入EXCEL
myfile.writeline strLine
Do while Not rs.EOF
strLine=""
for each x in rs.Fields
strLine=strLine & x.value & chr(9)
next
'--将表的数据写入EXCEL
myfile.writeline strLine
rs.MoveNext
loop
end if
rs.Close
set rs=nothing
Response.Write "<BR><BR><center><b>导出成功,请选择继续操作</b></center>"
response.Write "<table width=90% cellspacing=1 cellpadding=3 align=center>"
Response.Write "<tr align=center> <td>"
response.write ("<font color=green>√</font><a href='"&request("exit")&".xls'>下载</a>") & " <font color= green>√</font><a href=javascript:window.close()>关闭</a>"
Response.Write "</td></tr></table>"
%>
excel作为数据源,也可以像打开access表这样操作,需调整数据库路径跟excel表名。
一张完整的excel表可以看作是一个mdb文件,打开excel表后,左下角的Sheet1、Sheet2、Sheet3可以看作是mdb里面的一张表的表名。
Sheet1\2\3对应打开的第一行,即A1所在的行可看作是mdb表里面的字段名。
excel表在读取、修改上基本上跟操作access表一样,但e68a84e8a2ade79fa5e98193335无法使用addnew,update命令,所以删除,添加很难使用这种方法实现。
因此要实现这些功能,最好是使用Excel.Application对象。
set oea=CreateObject("Excel.Application")
oea.DisplayAlerts=false'不显示警告
strAddr = Server.MapPath("test.xls")
oea.WorkBooks.Open(strAddr)
set oeb = oea.ActiveWorkBook
set oes = oeb.WorkSheets(1)
以上创建了该对象。然后,
oes.Cells(x,y)可以读出第x行y列对象的信息,oes.Cells(x,y).value=”“可在第x行y列中写入数据。
oes.Range("A1:G1").value=Array("id","wj","js","xz","time","name","d")在A1-G1中分别写入数组中数据,
注意oes.Range("A1:G1")并不能读出该行数据。
最后,
oeb.Save'保存excel文件
oea.quit'释放excel进程'
这里如果只读的话就不需要保存文件,但是无论进行什么操作都必须释放excel进程,切记!
但这些方法都无法实现真正的删除行,一般要把excel作为数据源的话,实现删除操作都只是把该数据清空,但这样的话,所有的SQL查询语句就必须要加上排除空行的判断条件了。
个人觉得创建Excel.Application对象适合做导出数据到excel中,而且前者则适合做从excel中导入。
希望可以给你一点帮助!
在运行中打oleview.exe,找到“Microsoft excel应用程序”,选择“activation”,选中“launch as Interactive user”。
然后写代码例如:
Set xl = server.createobject("Excel.Application")
filename=server.MapPath("document/test.xls")
xl.Workbooks.open(filename) '打开模版
xl.Range("A2:I3") = Datepart("yyyy",date)&" 年下半年重大、重要合同目录表"
下面的主要e799bee5baa6e79fa5e98193e58685e5aeb9366是用vba生成的代码
With xl.Range("A2:I3").Font
.Name = "宋体"
.FontStyle = "粗体"
.Size = 16
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.ColorIndex = xlAutomatic
End With