咨询,就免费赠送域名与服务器,咨询热线:13915107752当前位置: > 新闻动态 > 网站设计 >
联系我们
电话咨询:13915107752
电话咨询:0517-89862517
地址: 淮安市清河区金马广场北楼24楼019室

Asp把Access数据导出到Excel

作者/整理:daijk 浏览次数:次 日期:2018-03-06

演示网址:
制作周期:

方法一

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns:x="urn:schemas-microsoft-com:office:excel">

<head>

<title>导出Excel在客户端</title>

<xml>

             <x:ExcelWorkbook>

                <x:ExcelWorksheets>

                    <x:ExcelWorksheet>

                        <x:Name>工作表标题</x:Name>

                        <x:WorksheetOptions>

                            <x:Print>

                                <x:ValidPrinterInfo />

                            </x:Print>

                        </x:WorksheetOptions>

                    </x:ExcelWorksheet>

                </x:ExcelWorksheets>

            </x:ExcelWorkbook>

        </xml>

 

</head>

 

<body>

<%

 

set conn = server.createobject("adodb.connection")

set rs = server.CreateObject("ADODB.recordset")

conn.open "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath("test.mdb")

 

 

rs.open"select * from mytest",conn,3,3

 

%>

<table  border="0" align="center" >

<tr>

 <td>id</td>

 <td>title</td>

 <td>name</td>

 <td>age</td>

 </tr>

 <%

 do while not rs.eof

 %>

 <tr>

 <td><%=rs("id")%></td>

 <td><%=rs("title")%></td>

 <td><%=rs("name")%></td>

 <td><%=rs("age")%></td>

 </tr>

 <%

 rs.movenext

 loop

 rs.close

 

  'Response.ContentType   =   "application/vnd.ms-excel"  

 

  response.ContentType ="application/vnd.ms-excel"

   Response.AddHeader   "content-disposition",   "inline;   filename=temp.xls"

 

 

 %>

 

 </table>

</body>

</html>

 

 

方法二 总共两个页面

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html >

<head>

<title>导出Excel在服务器端,然后下载</title>

</head>

 

<body>

<%

 

set conn = server.createobject("adodb.connection")

set rs = server.CreateObject("ADODB.recordset")

conn.open "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath("test.mdb")

 

 

rs.open"select * from mytest",conn,3,3

 

%>

<table  border="0" align="center" >

<tr>

 <td>id</td>

 <td>title</td>

 <td>name</td>

 <td>age</td>

 </tr>

 <%

 do while not rs.eof

 %>

 <tr>

 <td><%=rs("id")%></td>

 <td><%=rs("title")%></td>

 <td><%=rs("name")%></td>

 <td><%=rs("age")%></td>

 </tr>

 <%

 rs.movenext

 loop

 rs.close

 

 

 %>

 

这个页面名字为export.asp,代码如下

 

<body>

 

<%

set conn = server.createobject("adodb.connection")

set rs = server.CreateObject("ADODB.recordset")

conn.open "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath("test.mdb")

 

rs.open"select * from mytest",conn,3,3

 

if not (rs.eof And rs.bof) then 

  dim ttxt,file,filepath,writefile

  ttxt="test.csv"  '为要写入的文件取个文件名,后缀可以是txt,xls,这里我用csv,这种文件打开也是excel表

  Set file = CreateObject("Scripting.FileSystemObject")

  Application.lock

  '写入文件的存放路径,一定要开放这个路径下的读写权限

  filepath=Server.MapPath(ttxt)

  Set Writefile = file.CreateTextFile(filepath,true)

  '在表格中写入第一行,字段描述,这个根据你实际的数据表字段来写

  Writefile.WriteLine "id,title,name,age" 

  do while not rs.eof

  Writefile.WriteLine rs("id")&","&rs("title")&","&rs("name")&","&rs("age")

  rs.movenext

  loop

  '以上三行作用是逐行将数据写入表中

  Writefile.close

  Application.unlock

  rs.close

  set rs=nothing

  Response.Write  "生成EXCEL文件成功,点击<a href=""test.csv"" target=""_blank"">下载</a>!"

end if

 

%>

 </body>

 </table>

 <form action="export.asp" method="post"><input type="submit" value="导出到Excel" /></form>

 

</body>

</html>

 

说明:方法一是 在客户端导出EXCEL,通过

   response.ContentType ="application/vnd.ms-excel"

   Response.AddHeader   "content-disposition",   "inline;   filename=temp.xls"

   导出。

方法二:

     在服务器端导出Excel。然后下载到客户端。

数据库名为test.mdb

Asp页面要和数据库放在同一目录同一级下面,假如想更改可以更改代码server.mappath("test.mdb") 中test.mdb的地址

数据表截图一下

 

   


Asp把Access数据导出到Excel - ch3cls - ch3cls的博客

 

今天找了很久才找到了,我两种方法都测试过了,都能用的