· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [专题] IBM Rational高峰论坛 Windows 7十大功能
· [专题] 史上就危险7月 微软 BizSpark 计划介绍
· [IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 我也能做CTO_赛迪连载 赛迪七夕特别行动
· [热点] Chrome 4.0采用V8引擎 Java开发编程规范

结合JAVASCRIPT将HTML导入Excel形成简单Web报表

发布时间:2006.03.15 14:41     来源:Matrix    作者:scholers

        结合JAVASCRIPT将HTML导入Excel形成简单Web报表
        做法是把HTML中的table整个导入到Excel中,提示下载或者打开.
        Javascript代码:

 /****************************************************
add by liqingfeng,
生成导出按钮,专门供查询配置统计页面使用,
即页面没有ifram的情况
2005-4-29
*******************************************************/
function getExcelExportButton(inTblId, btnWidth, root, formname) {
        var strHtml = "";
        var width=90;
        if (btnWidth!=null)width=btnWidth;
        //var tblWin = (!!inWindow ? inWindow : "");
        //strHtml += "<form name ='xlsForm'>";
        strHtml += "<input name=\"tablevalue\" type=\"hidden\" value=\"\">";
        if(!document.all("xlsFrm")) {
        strHtml += "<iframe name=\"xlsFrm\" width=\"0\" height=\"0\"></iframe>";
        }

        strHtml += "<table border=\"1\" align='center' cellspacing=\"0\" cellpadding=\"0\" width=\""+width+"\">";
        strHtml += "  <tr class=\"tableButton\" onClick=\"javascript:getXlsFromJsp('" + inTblId + "','" + root + "','" + formname +"')\" "
        + "onMouseOver=\"buttonOver(this)\" onMouseOut=\"buttonOut(this)\">";
        strHtml += "    <td nowrap>导出</td>";
        strHtml += "  </tr>";
        strHtml += "</table>";
        //strHtml += "</form>";
        document.writeln(strHtml);
        //getGlobeHideFrame();
}



/************************************************
add by liqingfeng,
专门供查询配置统计页面使用,
即页面没有ifram的情况
2005-4-29
*********************************************************/
        function getXlsFromJsp(id, root, formname){
                        //var tblDocument = eval(frmName).document;
                        var tblFromname = document.all(formname);
                        var curTbl = document.all(id);
                        var tableValue = curTbl.innerHTML ;
                        tblFromname.tablevalue.value = tableValue;
                        //alert(""+curTbl.innerHTML );
                        window.open( root + "/excel_transfer.jsp?formname=" + formname,"def","Height = max ,Width = max");
        }



测试的HTML:

<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<head><title>Test</title></head>
<body>
<form name = “form1”>
<TABLE borderColor=#111111 cellSpacing=0 cellPadding=2 width=1200 align=center border=1>
  <TR>
    <TD align=middle width="10%" height=20 rowSpan=2>项目 </TD>
    <TD align=middle width="2%" height=20 rowSpan=2>计量单位 </TD>
    <TD align=middle width="4%" height=20>满期赔付率 </TD>
  </TR>
</TABLE>
<script>getExcelExportButton2('collate', 'frmInfoList','90','/root','form1')</script>
</form>
</body>
</HTML>

点击导出按钮,页面转入excel_transfer.jsp 进行中转处理
excel_transfer.jsp:
<%@ page contentType="text/html; charset=gb2312" %>
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<head><title>excel transfer</title></head>
<body>
<!--
/********************************************
  中转页面,由这个页面跳转到最终生成Excel页面
  jsp name: excel_transfer.jsp
   Author : LiQingfeng
  Date : 2005-4-29
********************************************/
-->
<!--
<script language="JavaScript">
document.write(opener.form1.tablevalue.value);
</script>
-->
<form name = "form2" method = "post" action = "excel_create.jsp">
<input name="tablevalue2" type="hidden" value="">
          <script language="JavaScript">
            var forname = "<%=request.getParameter("formname")%>";
                form2.tablevalue2.value = opener.document.all(forname).tablevalue.value;
                form2.submit();
        </script>
</body>
</HTML>



excel_create.jsp:

<%@ page contentType="text/html; charset=gb2312" %>
<%response.setContentType("application/vnd.ms-excel;charset=gb2312"); %>
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<head><title>create excel</title></head>
<body>
<!--
/********************************************
  最终生成Excel页面,导出成Excel
  jsp name: excel_transfer.jsp
   Author : LiQingfeng
  Date : 2005-4-29
********************************************/
-->
<!--
<script language="JavaScript">
document.write(opener.form1.tablevalue.value);
</script>
-->
<TABLE borderColor=#111111 cellSpacing=0 cellPadding=2 width=1200 align=center border=1>
  <%=request.getParameter("tablevalue2")%>
</TABLE>

</body>
</HTML>



[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· sqlserver 2000h 和 jdbc 的融合问题 (06-21) · J2EE初学者需要理解的问题 (05-18)
· 用Axis 1.1 for Java进行Web Services开发(1) (10-09) · 如何写自己的Type3 JDBC 驱动 (09-24)
· 大道至简-Java之23种模式一点就通 (09-28) · 在CMP实体BEAN中使用BLOB数据类型 (03-15)
· 手工创建的 SOAP 消息中命名空间的处理 (02-09) · JDO、EJB/CMP、Hibernate和Amber的比较 (06-09)
· 基于Axis的自定义对象序列化 (12-24) · 创建简单Eclipse插件实现Axis WebService客户 (06-12)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
资讯 通信 IT产品 IT技术 信息化
专题:谷歌发布PC操作系统Chrome OS
·芯能量 新动力 兴经济:..
·专题:英特尔与AMD和解 ..
·专题:惠普27亿收购3Com..
专题:
·专题:诺基亚危局已现 ..
·六股势力角逐4G标准 中..
·专题:联通iPhone并不贵..
 
·惠普123459黑白激打家族..
·云计算格局初现 三大阵..
·分析:虚拟化在高性能计..
2009 IBM动态架构新动力论坛
·直播:第八届中国系统与..
·专题:置身智慧海洋——..
·专题:让物品开口说话 ..