最近因为工作的需要,需要将数据库里的信息显示到jsp页面中,然后选择导出数据的方式。因为以前没有接触过这些东西,所以毫无头绪。而且我的html的table还有很多属性,尤其是合并单元格的,真是毫无思路,不知道转换起来是否特别麻烦,望哪位大虾指点一二,最好可以有实现的代码
我的table大概是这样的:
<table class="normaltable">
<tr>
<td width="33">&nbsp;</td>
<td width="33">&nbsp;</td>
<td width="33">&nbsp;</td>
<td width="33">&nbsp;</td>
<td width="33">&nbsp;</td>
<td width="33">&nbsp;</td>
<td width="33">&nbsp;</td>
<td width="33">&nbsp;</td>
<td width="33">&nbsp;</td>
<td width="33">&nbsp;</td>
</tr>
<tr  class="listtr" height="33">
<td  colspan="10" align="center">xxxxxxxxxx</td>
</tr>
<tr  class="listtr" height="33">
<td  colspan="4"></td>
<td  colspan="6">xxxxxxxxxx</td>
</tr>
<tr  class="listtr" height="33">
<td  colspan="5">xxxxxxxxxx</td>
<td  colspan="3"><input type='text' name="id1" value="xxxxxxxxxx"></td>
<td ></td>
<td ></td>
</tr>
</table>

解决方案 »

  1.   

    为什么要用js倒呢?js有权限的问题.
    在后台输出html不就可以了么?
      

  2.   

    支持1L,用js非要用ie才行,还不如交给服务器去处理
      

  3.   


    <HTML>
    <HEAD>
    <TITLE>将页面中指定表格的数据导入到Excel中</TITLE>
    <SCRIPT LANGUAGE="javascript">
    <!--
    function AutoExcel(){
      var oXL = new ActiveXObject("Excel.Application"); //创建应该对象
      var oWB = oXL.Workbooks.Add();//新建一个Excel工作簿
      var oSheet = oWB.ActiveSheet;//指定要写入内容的工作表为活动工作表
      var table = document.getElementById("data");//指定要写入的数据源的id
      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++){//在Excel中写行
        for (j=0;j<lie;j++){//在Excel中写列
          //定义格式
          oSheet.Cells(i+1,j+1).NumberFormatLocal = "@";//将单元格的格式定义为文本
          //oSheet.Cells(i+1,j+1).Font.Bold = true;//加粗
          oSheet.Cells(i+1,j+1).Font.Size = 10;//字体大小
          oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText;//向单元格写入值
        }
      }
      oXL.Visible = true;
      oXL.UserControl = true;
    oXL=null
    }
    //-->
    </SCRIPT>
    </HEAD><BODY><table border="0" width="300" id="data" bgcolor="black" cellspacing="1">
    <tr bgcolor="white">
    <td>编号</td>
    <td>姓名</td>
    <td>年龄</td>
    <td>性别</td>
    </tr>
    <tr bgcolor="white">
    <td>0001</td>
    <td>张三</td>
    <td>22</td>
    <td>女</td>
    </tr>
    <tr bgcolor="white">
    <td>0002</td>
    <td>李四</td>
    <td>23</td>
    <td>男</td>
    </tr>
    </table>
    <input type="button" name="out_excel" onclick="AutoExcel();" value="导出到excel">
    </BODY>
    </HTML>权限要放开
      

  4.   

    4楼的方法我知道,我觉得有两个缺陷的地方:1是必须将电脑的安全级别降低才行,不然会有automation服务器不能创建对象的提示;2是只能转化你最简单的table,像有合并单元格的table就不好用
      

  5.   

    如果不考虑浏览器兼容,用微软的OWC吧
      

  6.   

    问:如果在服务器端完成,传给客户端的是不是一个完整的xls文件?如果客户端没有安装excel,那不就是徒劳?
    既要保证安全性,又要保证浏览器兼容,有没有两全其美的方法?
      

  7.   

    这个需求分支很多的:
    1、将数据库中查询出的数据读出写成EXCEL保存在服务器;
    2、将数据库中查询出的数据读出写成EXCEL保存到客户端;
    3、将数据库中查询出的数据读出做成表格送到客户端显示,然后客户端点导出按钮导出到EXCEL保存到客户端;
    4、客户端选择本地EXCEL文件显示在网页里(完全客户端操作)
    5、客户端选择本地EXCEL文件上传到服务器指定目录供保存或供客户端下载;
    6、服务器端生成EXCEL供客户端下载;

    你需要怎么做那就自己先规划一下先,别人插嘴也是胡乱猜测
      

  8.   

    提取表格信息到excel我已经实现了,但是有一个新问题,就是<input>标签中的值取不出来,也就是excel文件中显示不出来
    各位大虾再帮帮忙
      

  9.   

    没有知道的吗?是不是要解析html?
      

  10.   

    你怎么写的EXCEL?如果是循环写入的,那就检查TABLE里每个TD的innerHTML,发现有INPUT标签做解析呀,取它的value不可以吗?