标题:[求助]将页面内容下载为EXCEL的方法
只看楼主
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
 问题点数:0 回复次数:15 
[求助]将页面内容下载为EXCEL的方法
如题:
      目前我的表格资料已经取得如下:
      <tr>
       <td bgcolor="#f000ff" align="center">名次</td>
       <td bgcolor="#f000ff" align="center">分数</td>
       <td bgcolor="#f000ff" align="center">部门</td>
       <td bgcolor="#f000ff" align="center">姓名</td>
       <td bgcolor="#f000ff" align="center">时间</td>
      </tr>
      <%
        dim countTel
        countTel = 1
        do while not rs.eof
      %>
      <tr>
       <td align="center"><%=countTel%></td>
       <td align="center"><%response.Write formatNumber(rs("shouldpay"))%></td>
       <td align="center"><%=rs("department")%></td>
       <td align="center"><%=rs("username")%></td>
       <td align="center"><%=rs("startdate")%></td>
      </tr>
      <%
      rs.movenext
      countTel=countTel+1
      loop
      %>
      <tr>
       <td bgcolor="#f0c0ff" align="right">.</td>
       <td bgcolor="#f0c0ff" align="center">分数合计:<%response.Write formatNumber(rs2("gshj"))%></td>
       <td bgcolor="#f0c0ff" align="right">.</td>
       <td bgcolor="#f0c0ff" align="right">.</td>
       <td bgcolor="#f0c0ff" align="right">.</td>      
      </tr>

现在.我想将这个表格中的内容DOWN为EXCEL文件.  不知道哪位前辈可以告知代码的写法.
小弟先跪谢了.
搜索更多相关主题的帖子: EXCEL align bgcolor center 
2005-01-19 15:43
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
最好是在页面中给个超链接或按钮,当用户点击的时候,就进入另一页面开始下载.
2005-01-19 15:44
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
继续求教,各位前辈,救命丫
2005-01-19 16:42
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
<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.data;  
var  hang  =  table.rows.length;  
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>   
2005-01-19 18:38
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
二、用Excel的Application组件在客户端导出到Excel或Word  
  
注意:两个函数中的“data“是网页中要导出的table的  id  


搜到这么个东东,看到type=hidden,怎么可以导出的呢,试试,没用
<input  type="hidden"  name="out_word"  onclick="vbscript:buildDoc"  value="导出到word"  class="notPrint">  
<input  type="hidden"  name="out_excel"  onclick="AutomateExcel();"  value="导出到excel"  class="notPrint">   



导出到Excel代码  
<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.data;  
var  hang  =  table.rows.length;  
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>   



导出到Word代码  
<script  language="vbscript">  
Sub  buildDoc  
set  table  =  document.all.data  
row  =  table.rows.length  
column  =  table.rows(1).cells.length  
Set  objWordDoc  =  CreateObject("Word.Document")  
objWordDoc.Application.Documents.Add  theTemplate,  False  
objWordDoc.Application.Visible=True  
Dim  theArray(20,10000)  
for  i=0  to  row-1  
for  j=0  to  column-1  
theArray(j+1,i+1)  =  table.rows(i).cells(j).innerTEXT  
next  
next  
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("综合查询结果集")  //显示表格标题  



objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("")  
Set  rngPara  =  objWordDoc.Application.ActiveDocument.Paragraphs(1).Range  
With  rngPara  
.Bold  =  True  //将标题设为粗体  
.ParagraphFormat.Alignment  =  1  //将标题居中  
.Font.Name  =  "隶书"  //设定标题字体  
.Font.Size  =  18  //设定标题字体大小  
End  With  
Set  rngCurrent  =  objWordDoc.Application.ActiveDocument.Paragraphs(3).Range  
Set  tabCurrent  =  ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column)  



for  i  =  1  to  column  



objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAfter  theArray(i,1)  
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.ParagraphFormat.alignment=1  
next  
For  i  =1  to  column  
For  j  =  2  to  row  
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAfter  theArray(i,j)  
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.ParagraphFormat.alignment=1  
Next  
Next  
End  Sub  
</SCRIPT>   
2005-01-19 19:08
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
召唤传说中的高手
2005-01-19 19:20
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
得分:0 
有二个办法。 办法一:在服务器里把office里的EXCEL服务组件(当然得装有OFFICE)在组件服务器(dcomcnfg)中设为任何人完全控制。然后在服务器里生成EXCEL文件,然后下载文件(最好在下载完成后删除)。 办法二:使用iWebOffice办公自动化网络文档管理中间件。该中间件有一组件(个人非商业使用是免费的),把它安要求装到IIS服务器里(服务器也要求装有OFFICE),然后用户在使用时会要求安装一个插件(只在第一次使用时装)当然要求用户机上得装有OFFICE。然后就可以在服务器或用户机上生成EXCEL文档了(其它的OFFICE软件文档如:WORD、FRONTPAGE等等,都可以在服务器或客户端生成,并且是直接在IE里调用了这些软件的功能,用户端的使用方法与OFFICE基本一样)。 当然二个办法都是支持ASP的。 我可是把吃饭的本钱都拿出来了

[此贴子已经被作者于2005-1-19 20:14:19编辑过]


2005-01-19 19:41
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
楼上的第二种方法说得太抽象了.能否详细相告?
2005-01-19 20:43
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
得分:0 

2005-01-19 20:49
9sex0
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2004-12-31
得分:0 
哎,
我也搜索到不少这种帖子,但是试了就是解决不了什么问题丫
2005-01-19 21:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-11504-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.344558 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved