`
tonyJ
  • 浏览: 142599 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

web页面如何导出特殊格式的表格

 
阅读更多
1、实现思路
先将要导出的表格格式和数据生成页面,使用流的机制将页面内容全部获取发送到后台,后台再以流的形式写入execl中。
2、具体事例和步骤
如下图所示的表格格式


第一 先将该表格格式数据写入页面中,如下图


第二 在该页面中 增加js方法,将页面的内容抽取并发送至后台
[#ftl]
[@b.head/]
<body onload="exportData()">
<table align="center" class="formTable" id="exportTable" style="display: none">
	<tr>
		<td>学校创新学分取得累计分值</td>
		[#list yearList as year]
			<td colspan="4">
				${year}级
			</td>
		[/#list]
	</tr>
	<tr>
		<td></td>
		[#list yearList as year]
			<td>
				竞赛类
			</td>
			<td>
				创新项目类
			</td>
			<td>
				学术论文类
			</td>
			<td>
				发明专利类
			</td>
		[/#list]
	</tr>
	<tr>
		<td>20分以上</td>
		[#list yearList as year]
			<td>
				${(forthMap.get(year).competCount)!}
			</td>
			<td>
				${(forthMap.get(year).innovateCount)!}
			</td>
			<td>
				${(forthMap.get(year).thesisCount)!}
			</td>
			<td>
				${(forthMap.get(year).patentCount)!}
			</td>
		[/#list]
	</tr>
	<tr>
		<td>11-20分(包括20分)</td>
		[#list yearList as year]
			<td>
				${(thirdMap.get(year).competCount)!}
			</td>
			<td>
				${(thirdMap.get(year).innovateCount)!}
			</td>
			<td>
				${(thirdMap.get(year).thesisCount)!}
			</td>
			<td>
				${(thirdMap.get(year).patentCount)!}
			</td>
		[/#list]
	</tr>
	<tr>
		<td>7-10分(包括10分)</td>
		[#list yearList as year]
			<td>
				${(secondMap.get(year).competCount)!}
			</td>
			<td>
				${(secondMap.get(year).innovateCount)!}
			</td>
			<td>
				${(secondMap.get(year).thesisCount)!}
			</td>
			<td>
				${(secondMap.get(year).patentCount)!}
			</td>
		[/#list]
	</tr>
	<tr>
		<td>1-6分(包括6分)</td>
		[#list yearList as year]
			<td>
				${firstMap.get(year).competCount}
			</td>
			<td>
				${firstMap.get(year).innovateCount}
			</td>
			<td>
				${firstMap.get(year).thesisCount}
			</td>
			<td>
				${firstMap.get(year).patentCount}
			</td>
		[/#list]
	</tr>
	[@b.form name="dataExportForm" action="!dataExport" target="blank"]
        <input type="hidden" name="courseTableHTML" value=""/>
    [/@]
</table>
</body>
<script>
		[#--编制导出内容--] 
	    function exportData() {
	        var outputDiv = $("<div>");
        	var excelTable = exportDataSet(); 
		    excelTable.appendTo(outputDiv);
	        $("input[name*='courseTableHTML']").val(outputDiv.html());
	        bg.form.submit("dataExportForm");
	    } 	
	    [#--编制导出表格样式和内容--]
	    function exportDataSet() {
	        var manauHTML=jQuery("#exportTable").html();
	        var excelTable = $("<table>");
	        excelTable.css("text-align", "center");
	        excelTable.attr("align", "center");
	        excelTable.attr("border", "1px");
	        excelTable.html(manauHTML);
	        excelTable.find("br").each(function(){
	           $(this).replaceWith("        ");//利用自动换行
	        });
	        excelTable.find("*").removeAttr("title");
	        excelTable.find("*").removeAttr("width");
	        excelTable.find("*").removeAttr("height");
	        excelTable.find("*").removeAttr("class");
	        excelTable.find("td").css("text-align", "center");
	        return excelTable;      
	    }
</script>
[@b.foot/]

我使用的页面是ftl格式的,主要方法是exportData(),exportDataSet()。
和这一段代码
[@b.form name="dataExportForm" action="!dataExport" target="blank"]
        <input type="hidden" name="courseTableHTML" value=""/>
[/@]


第三 后台页面的dataExport方法,在struts2中使用的
        /**
	 * 导出数据
	 * @return
	 */
	public String dataExport() {
	    HttpServletResponse response = ServletActionContext.getResponse();
	    response.setHeader("Content-Disposition",	
	            "attachment;filename=dataExport.xls");
	    return forward();
	}


第四步 数据输出的页面 dataExport.ftl
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="application/vnd.ms-excel;charset=UTF-8"> 
<meta name=ProgId content=Excel.Sheet>
</head>
<body link=blue vlink=purple>
${Parameters["courseTableHTML"]}
</body>
</html>

主要是设置导出的文件格式,注意头文件的信息。

3、导出的execl数据格式截图如下:



这种导出方式可以导出格式不正规的表格,很方便。
  • 大小: 34.5 KB
  • 大小: 26.1 KB
  • 大小: 56.2 KB
分享到:
评论

相关推荐

    JavaScript网页特效范例宝典源码

    实例301 将Web页面中的数据导出到Excel并自动打印 476 11.4 利用CSS样式打印 478 实例302 利用CSS样式打印页面中的指定内容 478 实例303 利用CSS样式分页打印 479 11.5 套打邮寄产品单 482 实例304 打印汇款单 482 ...

    javascript网页特效实例大全(8-12)

    实例301 将Web页面中的数据导出到Excel并自动打印 476 11.4 利用CSS样式打印 478 实例302 利用CSS样式打印页面中的指定内容 478 实例303 利用CSS样式分页打印 479 11.5 套打邮寄产品单 482 实例304 打印...

    Java_Web开发实战1200例第1卷.part2

    19.3 表格的特殊效果 748 第5篇 操作Word、Excel、报表与打印篇 第20章 JSP操作Word 764 20.1 应用JavaScript导出到Word 765 20.2 应用响应流导出到Word 766 20.3 应用POI组件导出到Word 772 第21章 JSP操作Excel ...

    Java_Web开发实战1200例第1卷.part3

    19.3 表格的特殊效果 748 第5篇 操作Word、Excel、报表与打印篇 第20章 JSP操作Word 764 20.1 应用JavaScript导出到Word 765 20.2 应用响应流导出到Word 766 20.3 应用POI组件导出到Word 772 第21章 JSP操作Excel ...

    Word计算机二级考试笔记

    设置特殊文本格式 ## 设置文本的特殊效果 ###通过“字体”命令组设置文本特殊效果 设置轮廓效果 设置阴影效果 设置映像效果 设置发光效果 ### 通过“字体”对话框设置文本特殊效果 设置文本填充 设置文本...

    Grid++Report6 报表开发者安装包

    轻松实现表格报表、动态报表、多层表头、票据套打、交叉表、统计图表、表中表及各种特殊报表等,是中式报表的最佳开发工具。提供详尽帮助文档与各种编程平台下的丰富例子,安装中包括可直接运行例子程序,安装后即刻...

    锐浪报表Grid++Report5.3

    轻松实现表格报表、动态报表、多层表头、票据套打、交叉表、统计图表、表中表及各种特殊报表等,是中式报表的最佳开发工具。提供详尽帮助文档与各种编程平台下的丰富例子,安装中包括可直接运行例子程序,安装后即刻...

    web路径探测工具 7kbscan-WebPathBrute 1.5.8 (集成三字典)

    十二字典编码为UTF8如需使用含中文或其他特殊语言路径字典请修改字典文件编码为UTF8 另外说一句字典有点乱我也没有精力去仔细弄了希望有人能整理一份分享给大家也可以私下联系我我来收集整理多谢大家

    《程序天下:JavaScript实例自学手册》光盘源码

    第1章 页面特效 1.1 HTML页面反向显示 1.2 页面自动最大化 1.3 页面自动刷新 1.4 页面的后退、刷新、前进 1.5保护网页源代码 1.6 保护自己的网页不被放入框架 1.7 保护自己的网页不被放入框架 1.8 打印页面的出错...

    程序天下:JavaScript实例自学手册

    第1章 页面特效 1.1 HTML页面反向显示 1.2 页面自动最大化 1.3 页面自动刷新 1.4 页面的后退、刷新、前进 1.5保护网页源代码 1.6 保护自己的网页不被放入框架 1.7 保护自己的网页不被放入框架 1.8 打印页面的出错...

    java开源包5

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    Excel2007图表完全剖析 3/8

    使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。...

    Grid++Report5.5报表工具

    轻松实现表格报表、动态报表、多层表头、票据套打、交叉表、统计图表、表中表及各种特殊报表等,是中式报表的最佳开发工具。提供详尽帮助文档与各种编程平台下的丰富例子,安装中包括可直接运行例子程序,安装后即刻...

    Grid++Report5报表工具 版本5.5.0.8

    轻松实现表格报表、动态报表、多层表头、票据套打、交叉表、统计图表、表中表及各种特殊报表等,是中式报表的最佳开发工具。提供详尽帮助文档与各种编程平台下的丰富例子,安装中包括可直接运行例子程序,安装后即刻...

    风越.net代码生成器 v3.5

    页面皮肤模板设置,根据网页模板快速生成页面 ★ 设置指定字段在编辑信息时为只读状态 字段需要二次输入(如输入两次密码,以验证其正确性) ★ 在列表中直接批量编辑字段值,便于管理员维护 列表、搜索文件...

    风越asp代码生成器 V3.5

    页面皮肤模板设置,根据网页模板快速生成页面 ★ 设置指定字段在编辑信息时为只读状态 字段需要二次输入(如输入两次密码,以验证其正确性) ★ 在列表中直接批量编辑字段值,便于管理员维护 列表、搜索文件...

    解析器-简单的站点抓取。「Parsers - Simple Site Scraping」「Parsers - FREE web scraper」-crx插件

    通过这种方式,您可以看到Web scraper Parsers的工作方式以及可以无风险导出的内容。 除了免费计划,我们还为更多抓取功能支付了计划。 通过我们的扩展程序可以获取的数据类型示例:•有关休息场所,生活条件,天气...

    风越.net代码生成器v2.9

    页面皮肤模板设置,根据网页模板快速生成页面 ★ 设置指定字段在编辑信息时为只读状态 字段需要二次输入(如输入两次密码,以验证其正确性) ★ 在列表中直接批量编辑字段值,便于管理员维护 列表、搜索文件...

    风越ASP代码生成器FireAspCreatorv2.9.rar

    页面皮肤模板设置,根据网页模板快速生成页面 ★ 设置指定字段在编辑信息时为只读状态 字段需要二次输入(如输入两次密码,以验证其正确性) ★ 在列表中直接批量编辑字段值,便于管理员维护 列表、搜索文件自动读取...

Global site tag (gtag.js) - Google Analytics