· [Java论坛][安全论坛][数据库论坛][操作系统论坛]
· [访谈] 网银安全系列访谈之:惊心动魄网银故事
· [热点专题] 网银安全系列 3G上网卡巡礼
· [订阅IT技术周刊][IT资源下载专区][病毒求助专区]
· [热点] 跨站脚本十二问 四步防范Conficker
· [热点] Windows 7 RC版公开下载 憾缺中文版

结合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技术 信息化
2009第七届中国电脑商年会直播
·创业投资系列访谈:产业..
·特别策划:视频网站系列..
·专题:网游虚拟货币新规..
专题:6月上市手机新品回顾及7月新机展望
·2009年中国电信业信息化..
·专题:把iPhone 3GS“解..
·WAPI重启国际标准进程 ..
专题:09年中盘点-联想春季打印机新品回顾
·InfoComm 2009 视听与集..
·网游背后的故事 网游服..
·[专题]联想ThinkPad T40..
BizSpark:微软为技术创业企业点燃火花
·社区活动:我的IT求知生..
·访谈:内网安全2009系列..
·安全访谈:网银安全之Sa..