以下内容放在<head></head>之间
将数据库记录用ASP读出, 并将其以文本方式(Tab分隔)保存为.xls文件, 提示用户下载后打开:<!-- START 导出表格到EXCEL --><object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object><script language="javascript"><!--function AutomateExcel(){var elTable = document.getElementById("outtable"); //outtable 为导出数据所在的表格ID;var oRangeRef = document.body.createTextRange();oRangeRef.moveToElementText( elTable );oRangeRef.execCommand( "Copy" );var appExcel = new ActiveXObject( "Excel.Application" );appExcel.Visible = true;appExcel.Workbooks.Add().Worksheets.Item(1).Paste();appExcel = null;}//--></script><!-- END 导出表格到EXCEL -->给要导出的表格加ID, 要与Javascript里一致<table border="0" id="outtable">在合适的位置放置"导出"按钮<input type="button" name="out_excel" onclick="AutomateExcel();" value="导出到excel">
ASP代码sql = "你的SQL查询语句"Set rs = Server.CreateObject("ADODB.RecordSet")rs.Open sql,conn,1,1Set fs = server.CreateObject("scripting.filesystemobject")'设置文件名及存放位置, 此处设置为保存在虚拟根目录filename="文件的名称.xls"temp=filenamefilename=Request.ServerVariables("APPL_PHYSICAL_PATH")&"\"+filename如果文件已存在, 删除它if fs.FileExists(filename) thenfs.DeleteFile(filename)end if'创建文件set myfile = fs.CreateTextFile(filename,true)dim strLinestrLine="Excel中的表头"myfile.writeline strLinestrLine=""'将表的列名读出, 并写入EXCEL. 列名可以在sql语句中用"as xxx"设置, 或省略.For each x in rs.fieldsstrLine= strLine & x.name & chr(9)Nextmyfile.writeline strLine'将表的数据写入EXCELwhile not rs.eofstrLine=""for each x in rs.FieldsstrLine= strLine & Trim(x.value) & chr(9)'Excel默认会把"0001"写为"1", 可以用下面的方法, 把相应的列加上&"=""" &和& """" &在列内容首尾, 以文本方式导出.'item中的数字表示列号, 从0开始算起'strLine= strLine & rs.Fields.item(0).value & chr(9) &"=""" & rs.Fields.item(1).value & """" & chr(9)'下面的方法为将每列都以文本方式导出'strline= strline & "="""&x.value &""""& chr(9)nextmyfile.writeline strLiners.movenextwend'显示链接link="<A HREF=""/temp" & temp & """>请点击下载excel文件</a>"Response.write linkset myfile = nothingSet fs=Nothing
注: 大部分内容来自互联网, 有本人整理编辑
没有评论:
发表评论