CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

asp页面表格用excel输出,点了没发应?请高手指点

楼主Lmir(小豹)2004-12-01 12:50:25 在 Web 开发 / ASP 提问

<div>      
  <table     width="100%"   id   =   "tab"     border="1"   cellpadding="1"   cellspacing="1"   bordercolor="#666666">  
  <tr>  
  <th>类型</th>  
  <th>时间</th>  
  <th>规格</th>  
  <th>收入</th>  
  <th>支出</th>  
  <th>结存</th>  
  <th>厂家</th>  
  <th>保修期</th>  
  <th>单价</th>  
  <th>经手人</th>  
  <th>单位</th>  
  <th>核对</th>  
  <th>备注</th>  
  </tr>          
   
  <%    
  while     not   oConn.eof    
  %>  
  <tr>  
  <td><%=oConn("类型")%></td>  
  <td><%=oConn("进出货时间")%></td>  
  <td><%=oConn("型号规格")%></td>  
  <td><%=oConn("收入数量")%></td>  
  <td><%=oConn("支出数量")%></td>  
  <td><%=oConn("结存数量")%></td>  
  <td><%=oConn("进货厂家")%></td>  
  <td><%=oConn("保修期")%></td>  
  <td><%=oConn("单价")%></td>  
  <td><%=oConn("经手人")%></td>  
  <td><%=oConn("单位")%></td>  
  <td><%=oConn("核对")%></td>  
  <td><%=oConn("备注")%></td>  
  </tr>  
   
                                                                                               
       
  <%                                            
  oConn.movenext            
  wend  
  %>  
  </table>  
  </div>  
     
  <input     type="button"     name="out_excel"     onclick="AutomateExcel();"   value="导出到excel"   class="notPrint">    
  <%  
  end   if  
  soConn.close          
  set   soConn=nothing        
                                   
  %>  
  <SCRIPT   LANGUAGE="javascript">  
  <!--    
  function   AutomateExcel()  
  {    
  //   Start   Excel   and   get   Application   object.    
  var   oXL   =   new   ActiveXObject("Excel.Application");    
  //   Get   a   new   workbook.    
  var   oWB   =   oXL.Workbooks.Add();      
  var   oSheet   =   oWB.ActiveSheet;    
  var   table   =   document.all.tab;    
  var   hang   =   table.rows.length;    
  response.Write("table")  
   
  var   lie   =   table.rows(0).cells.length;    
   
  //   Add   table   headers   going   cell   by   cell.    
  for   (i=0;i<hang;i++)    
  {    
  for   (j=0;j<lie;j++)    
  {    
  oSheet.Cells(i+1,j+1).value   =   table.rows(i).cells(j).innerText;    
  }    
   
  }    
  oXL.Visible   =   true;    
  oXL.UserControl   =   true;    
  }    
  //-->  
  </SCRIPT>  
           
  问题点数:30、回复次数:8Top

1 楼syre(神仙)回复于 2004-12-01 12:57:29 得分 3

为什么不直接指定输出类型为excel?????Top

2 楼Lmir(小豹)回复于 2004-12-01 13:20:10 得分 0

那样可以,我试过,但我是想先将它在页面显示出来,如果想导出到excel文件打印的话,就点那个按钮就行了Top

3 楼hqcsx(蓝色心灵)回复于 2004-12-01 14:14:47 得分 27

<!--#include   file="../conn/conn.asp"-->  
  <%  
  '导出xml,csv,htm文件DEMO  
  '用法:ExportDB.asp?t=文件类型&sql=sql语句  
  '文件类型可以是htm,csv,xml,默认是htm  
  'http://www.51windows.Net  
  'tablename   =   "htm"  
  Dim   shijian,dingdan  
  shijian   =   now()  
  dingdan   =   year(shijian)&month(shijian)&day(shijian)&hour(shijian)&minute(shijian)&second(shijian)  
   
  dim   tablename  
  sql2   =   request("sql")  
  tablename   =   request("tablename")  
  if   tablename   =   ""   then  
  tablename   =   "数据导出结果"&dingdan  
  else  
  tablename   =   tablename&dingdan  
  end   if  
  sql   =   replace(sql2,";","")  
   
  filetype   =   lcase(request("t"))  
  dim   dbid,IndexPageName  
  function   HTMLEncode(fString)  
  if   not   isnull(fString)   then  
   
          fString   =   Server.HTMLEncode(fString)  
          fString   =   Replace(fString,   CHR(10)   &   CHR(10),   "</P><P>   ")  
          fString   =   Replace(fString,   CHR(10),   "<BR>   ")  
  fString   =   Replace(fString,   CHR(9),   "&nbsp;&nbsp;")  
   
          HTMLEncode   =   fString  
  end   if  
  end   function  
   
  function   Myreplace(str)  
  if   not   isnull(str)   then  
  fString   =   Replace(fString,"""",   """""")  
  Myreplace   =   str  
  else  
  Myreplace   =   ""  
  end   if  
  end   function  
   
  dim   def_export_val  
  def_export_sep   =   ","  
  def_export_val   =   """"  
  if   lcase(left(sql,6))<>"select"   then  
  Response.write   "出错了。。。"  
  Response.end  
  end   if  
  Set   rs   =   Conn.Execute(sql)  
  if   filetype="xml"   then  
  Response.contenttype="text/xml"  
  Response.Charset   =   "gb2312"  
  Response.AddHeader   "Content-Disposition",   "attachment;filename="&tablename&".xml"  
  Response.write   "<?xml   version=""1.0""   encoding=""gb2312""?>"  
  Response.write   vbnewline&"<root>"  
  strLine=""  
  dim   thefield(50)  
  i   =   0  
  For     each     x     in     rs.fields  
  thefield(i)=x.name  
  i=i+1  
  Next  
  While   rs.EOF   =false  
  strLine=   vbnewline&chr(9)&"<row>"  
  k=0  
  For     each     x     in     rs.fields    
  strLine=     strLine   &   vbnewline&chr(9)&chr(9)&"<"&thefield(k)&">"  
  if   instr(x.value,"<")   or   instr(x.value,">")   or   len(x.value)>255   then  
  strLine=     strLine   &"&lt;![CDATA["&   x.value   &"]]&gt;"  
  else  
  strLine=     strLine   &   x.value  
  end   if  
  strLine=     strLine   &"</"&thefield(k)&">"  
   
   
  k=k+1  
  Next  
  rs.MoveNext  
  Response.write   strLine   &vbnewline&   chr(9)&"</row>"  
  Wend  
  Response.write   vbnewline&"</root>"  
  elseif   filetype="csv"   then  
  'Response.contenttype="application/vnd.ms-excel"  
  Response.contenttype="text/csv"  
  Response.AddHeader   "Content-Disposition",   "attachment;filename="&tablename&".csv"  
   
   
   
  strLine=""  
  strLine="""会员帐号"",""高级会员"",""真实姓名"",""电子邮件"",""联系电话"",""联系传真"",""移动电话"",""邮政编码"",""联系地址"",""公司名称"",""密码提示问题"",""密码提示答案"",""登录次数"",""最后登录时间"",""注册时间"","  
   
  For     each     x     in     rs.fields  
  'strLine=     strLine     &   def_export_val   &     def_export_val   &   def_export_sep  
  Next  
  Response.write   strLine   &   vbnewline  
  While   rs.EOF   =false  
  strLine=   ""  
  For     each     x     in     rs.fields  
  strLine=     strLine   &   def_export_val   &   trim(Myreplace(x.value))   &   def_export_val   &   def_export_sep  
  Next  
  rs.MoveNext  
  Response.write   strLine   &   vbnewline  
  Wend  
  else  
  if   filetype="htm"   then'弹出下载html的对话框  
  Response.contenttype="application/ms-download"  
  Response.AddHeader   "Content-Disposition",   "attachment;filename="&tablename&".htm"  
  end   if  
  %>  
  <html>  
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <!--META   NAME="Author"   CONTENT="51windows,海娃,haiwa">  
  <META   NAME="Description"   CONTENT="Power   by   51windows.Net"-->  
  <title>导出数据。。</title>  
  <style>  
  <!--  
  body               {   font-family:   Verdana;   font-size:   11px   }  
  th                   {   font-family:   Verdana;   font-size:   11px;padding:3px;color:#FFFFFF;background-color:#999999;}  
  td                   {   font-family:   Verdana;   font-size:   11px;padding:3px;background-color:#EFEFEF;}  
  -->  
  </style>  
  </head>  
  <BODY   style="overflow:auto;"   topmargin=2   bgcolor=buttonface   oncontextmenu=self.event.returnValue=false   >  
  <div   align="center">  
  <table   border="0"   cellpadding="0"   cellspacing="1"   bgcolor="#000000">  
  <tr>  
  <th   align="center">会员帐号</th>  
  <th   align="center">高级会员</th>  
  <th   align="center">真实姓名</th>  
  <th   align="center">电子邮件</th>  
  <th   align="center">联系电话</th>  
  <th   align="center">联系传真</th>  
  <th   align="center">移动电话</th>  
  <th   align="center">邮政编码</th>  
  <th   align="center">联系地址</th>  
  <th   align="center">公司名称</th>  
  <th   align="center">密码提示问题</th>  
  <th   align="center">密码提示答案</th>  
  <th   align="center">登录次数</th>  
  <th   align="center">最后登录时间</th>  
  <th   align="center">注册时间</th>  
  </tr>  
  <%  
  i=0  
  For     each     x     in     rs.fields      
  strLine=     strLine     &chr(9)&chr(9)&   vbnewline  
  Next  
  Response.write   strLine&chr(9)&   vbnewline   &   vbnewline  
  While   rs.EOF   =false  
  i=i+1  
  Response.write   chr(9)&"<tr>"&   vbnewline  
  strLine=   ""  
  For     each     x     in     rs.fields    
  strLine=     strLine     &chr(9)&chr(9)&"<td>"&     HTMLEncode(x.value)   &"</td>"&   vbnewline  
  Next  
  rs.MoveNext  
  Response.write   strLine  
  Response.write   chr(9)&"</tr>"&   vbnewline   &   vbnewline  
  Wend  
  Response.write   "</table>"&   vbnewline  
  if   filetype<>"htm"   and   filetype<>"xls"   and   filetype<>"txt"   then  
  Response.write   "<p   style='line-height:160%;'>"&i&"条记录   <a   href='?tablename="&request("tablename")&"&t=htm&sql="&server.urlencode(sql2)&"'>导出HTML</a>|<a   href='?tablename="&request("tablename")&"&t=csv&sql="&server.urlencode(sql2)&"'>导出EXCEL</a>|<a   href='?tablename="&request("tablename")&"&t=xml&sql="&server.urlencode(sql2)&"'>导出XML</a>"&   vbnewline  
  end   if  
  'Response.write   "<p>Power   by   <A   HREF=""http://www.51windows.Net""   target=""_blank"">51windows.Net</A>"&   vbnewline  
  Response.write   "</div>"&   vbnewline  
  Response.write   "</BODY>"&   vbnewline  
  Response.write   "</HTML>"&   vbnewline  
  %>  
   
  <%  
  end   if  
   
  rs.close  
  conn.close  
  Set   rs=nothing  
  Set   conn=nothing    
  %>  
   
   
  **********************************************************************************  
   
   
  <%  
          member_name   =   trim(request("member_name"))  
          member_sex   =   trim(request("member_sex"))  
          member_popedom   =   trim(request("member_popedom"))  
  sql2   =   "select   member_name,member_popedom,member_nickname,member_email,member_phone,member_fax,mobile_phone,member_postalcode,member_address,member_company,member_question,member_answer,member_count,now_date,now_first   from   member   where   member_id   >=   1   "  
          if   member_name   <>   ""   then  
  sql_member_name   =   "   and   member_name   like   '%"&member_name&"%'   "  
  sql2   =   sql2   +   sql_member_name  
  end   if  
          if   member_sex   <>   ""   then  
  sql_member_sex   =   "   and   member_sex='"&member_sex&"'   "  
  sql2   =   sql2   +   sql_member_sex  
  end   if  
          if   member_popedom   <>   ""   then  
  sql_member_popedom   =   "   and   member_popedom   =   "&member_popedom&"   "  
  sql2   =   sql2   +   sql_member_popedom  
  end   if  
  sql2   =   sql2   +   "   order   by   now_first   desc   "  
  %>  
   
  <input   name="Submit"   type="button"   class="cabinput"   value="导出网页"   onClick="window.location.href='ExportDB.asp?t=htm&sql=<%   =   server.URLEncode(sql2)   %>'"   >  
  &nbsp;&nbsp;  
  <input   name="Submit"   type="button"   class="cabinput"   value="导出表格"     onClick="window.location.href='ExportDB.asp?t=csv&sql=<%   =   server.URLEncode(sql2)   %>'">  
  Top

4 楼Lmir(小豹)回复于 2004-12-01 14:54:59 得分 0

谢了,先下了试试!Top

5 楼Lmir(小豹)回复于 2004-12-01 15:30:34 得分 0

比较长,代码还要改造一番才能用。  
  想问问我那段程序到底是哪个地方出了问题?  
  怎么改啊Top

6 楼iamwaiting1980(我一直在等待)回复于 2004-12-01 15:58:04 得分 0

我也想知道Top

7 楼iamwaiting1980(我一直在等待)回复于 2004-12-01 16:20:23 得分 0

孙晓宁qq21522656   tel:13589357384Top

8 楼iamwaiting1980(我一直在等待)回复于 2004-12-01 16:37:17 得分 0

//   Get   a   new   workbook.    
  var   oWB   =   oXL.Workbooks.Add();      
  var   oSheet   =   oWB.ActiveSheet;    
  var   table   =   document.all.tab;    
  var   hang   =   table.rows.length;    
  response.Write("table")  
   
   
  什么意思?Top

相关问题

  • 如何打开指点定Excel表格?
  • 用asp实现excel表格合并?
  • ASP中將表格資料導入EXCEL
  • 急!!!excel表格
  • excel表格
  • 如何让PB通过DDE技术对EXCEL表格进行清空?高手请指点!!
  • ASP是否可以在 页面 调用 并显示 Excel 表格??
  • 怎样用ASP将Excel表格数据导入Oracle?
  • 如何用ASP做出象EXCEL一样的表格
  • 用asp怎样实现将数据库导进Excel电子表格和Excel电子表格导进数据库!?

关键词

  • 密码
  • vbnewlineresponse
  • strline
  • 密码提示
  • chr
  • 联系
  • 会员
  • 登录
  • write
  • 时间

得分解答快速导航

  • 帖主:Lmir
  • syre
  • hqcsx

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo