在使用asp操作excel文件中需要生成excel文件,下面介绍2种方法使用asp生成excel文件。
方法一:
此方法使用excel可以读取html页面中的table格式思想:
<% Response.ContentType = "application/excel" Response.AddHeader "Content-Disposition", "attachment;filename=""xxxx.xls""" %> <table> <%while not rs.eof %> <tr><td>你的excel单元格内容,有多个自己增加td</td></tr> <% rs.movenext wend %> </table>
优点:可以生成多行的excel内容文件。
缺点:文件为伪excel文件,只是后缀名改变而已。
方法二:
使用已建立好的excel文件,使用asp类似操作数据库方式 拷贝一份excel文件并进行读写操作。
前期建立2个文件夹 分别 1 2,建立好的excel文件放在文件 1 中 文件名:cgb01.xlsx
<!-- #include file="../con.asp" --> <% Server.ScriptTimeOut=3600 '复制模板文件 dir1=Server.MapPath("1\cgb01.xlsx") '随机生成的文件名开始 ycodenum=6 '验证码的位数,或者说成个数 for i=1 to ycodenum Randomize '初始化随机数发生器 ycode=ycode&Int((9*Rnd)) 'rnd是随机数,从0到1之间的任意实数,这里获得0到9之间的整数 next tt=Replace(Request.Cookies("xmname")&date()&Second(time)&ycode,"/","-") '随机生成的文件名结束 dir2=server.mappath("2\"&tt&".xlsx")'生成新的文件名 Set fs = Server.CreateObject("Scripting.FileSystemObject") 'Response.write dir1&"<br>"&dir2 fs.copyfile ""&dir1&"",""&dir2&"" '复制模板文件结束 '打开excel文件 set excelconn=server.createobject("adodb.connection") excelconn.open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 8.0;Data Source=" & dir2 '打开此文件 '打开excel文件结束 while not re.eof scexcel="insert into [表单名$] (列名1,列名2,列名3) values ('列名1内容','列名2内容','列名3内容')" 'Response.write scexcel&"<br>" excelconn.execute scexcel re.movenext wend re.close set re=nothing excelconn.Close() set excelconn=nothing %> <BR><BR><BR><BR><CENTER><A HREF="2\<%=tt%>.xlsx" target="_blank"><B>【下载 <%=ta1%> excel表】</B></A></CENTER>
优点:真正的 excel文件
缺点:生成内容在2000行以内(有大神此方法能不限行数请告知 )