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
分享到:
相关推荐
网页表格数据导出到Excel是Web开发中常见的一项需求,特别是在数据分析、报表展示等领域。jQuery作为一款广泛使用的JavaScript库,提供了许多便捷的插件来实现这一功能。本项目"简单实用网页表格数据导出Excel电子...
在Web页面上,通常我们会有一个表格展示数据,用户可能需要将这些数据下载到本地以便离线查看或进一步分析,这时候导出为Excel格式就显得尤为重要。这个例子中,开发者可能使用了HTML5的`<a>`标签配合`download`属性...
在Web应用中,导出Excel是一项常见的需求,用于将网页上的数据转化为用户可编辑和分析的电子表格格式。"Web导出EXCEL"的技术主要关注如何高效、稳定地实现这一功能,尤其是处理大量数据时,如何避免因Excel自身限制...
ASP.NET导出Excel是Web应用程序开发中的一个常见需求,它允许用户从网页上直接下载数据到Excel文件,便于数据分析和存储。在.NET 2008和SQL Server 2000的环境下,开发者可以利用ASP.NET框架提供的功能来实现这一...
`jquery.wordexport`插件就是针对这个需求而设计的一个工具,能够帮助开发者将网页中的文本内容方便快捷地导出为Microsoft Word文档格式。 该插件的核心功能是将网页中的选定内容转换为`.doc`或`.docx`文件,让用户...
在网页中,你可能有一个表格或者其他的数据显示区,用于展示要导出的数据。这些数据可以通过JavaScript动态生成或者获取。HTML表格可以使用`<table>`元素构建,包含`<thead>`(表头)、`<tbody>`(主体)和`<tfoot>...
在IT行业中,`DataTable` 是一个广泛使用的组件,特别是在Web应用程序开发中,它允许开发者以表格形式展示数据,并提供各种操作功能,如排序、过滤、分页等。本资源主要涉及的是如何在`DataTable`中实现动态加载数据...
6. 导入导出:可能支持CSV、Excel等格式的数据导入导出,便于数据交换和备份。 7. 拖放排序:允许用户通过拖放来调整列的顺序,或者进行行的移动。 8. 国际化:支持多语言环境,如README-CN.md和README-EN.md文件所...
Struts2和Apache POI是Java开发中两个重要的工具,它们在处理Web应用程序中的数据导出,特别是Excel表格导出方面发挥着重要作用。Struts2是一个基于MVC设计模式的Web应用框架,它极大地简化了Java Web开发。而Apache...
使用JSP导出Excel表格,可以让用户将网页中的表格数据转换成Excel文件格式进行保存,这样的操作在数据报告、数据导出等场景中非常常见。 在本文中,我们将讲解如何通过JSP来实现导出Excel表格的实例。首先,我们...
此外,`jspdf`还支持Unicode,这意味着它可以处理多种语言和特殊字符,使得多语种内容的导出成为可能。 **使用示例** 使用`jspdf`的基本流程如下: 1. 引入`jspdf`库:在HTML文件中通过`<script>`标签引入`jspdf....
在网页开发中,有时我们需要提供一个功能,允许用户将页面上的表格数据导出为Excel文件。这个过程涉及到了Web开发中的动态数据处理、文件生成以及客户端下载等技术。本示例提供了一个完整的解决方案,适用于初学者...
在IT领域,特别是Web开发中,ASP.NET框架一直是一个热门且功能强大的选择。它允许开发者构建动态、交互式的网页应用程序。其中一个常见的需求是将数据导出为Excel格式,以便用户可以方便地下载和分析数据。以下是从...
3. 数据表格的实现:在JSF页面中,使用`t:dataTable`标签来展示数据表格,通过绑定JSF Bean的数据,实现数据的展示和操作。 4. 文件下载的实现:通过使用`HttpServletResponse`和`OutputStream`,实现文件的下载。...
6. **导入导出**:将数据从CSV或其他格式导入到数据库,或将数据库导出为其他格式。 7. **权限管理**:设置不同用户的访问权限,确保数据安全。 了解并掌握这样一个Web SQL数据库管理工具,对于Web开发者来说,不仅...
8. 导出BUG的最终格式:完成以上步骤后,BUG列表将以一种易于管理和查看的形式出现在Excel表格中,方便进行后续的数据分析和报告生成工作。 总结以上步骤,BugFree3.0.4导出BUG操作是一个涉及Web后台管理、数据格式...
首先,我们需要创建一个ASP.NET Web Form页面,添加GridView控件,并将其绑定到数据源,如SQL Server数据库。在后台代码中,使用Dataset或Entity Framework等方法填充数据到GridView。确保在GridView中设置适当的列...
在IT行业中,尤其是在Web开发领域,常常需要将网页上的数据导出到Excel文件,以便用户进行数据分析或存储。本主题聚焦于"JSP中table导出多表头excel"的技术实现,这是一种常见的需求,特别是在展示复杂表格数据时,...
在.NET框架中,ASP.NET是一种常用的Web开发技术,它提供了丰富的功能来构建动态网站和Web应用程序。本笔记主要探讨如何使用ASP.NET实现HTML内容到Excel的导出功能,这是一个常见的需求,例如在数据分析、报表生成...
在软件开发中,特别是在Web应用程序的构建过程中,将数据导出到Excel是一种常见的需求,尤其是在数据分析、报表生成等场景下。C#作为.NET框架的主要编程语言之一,提供了多种方式来实现这一功能。本文将基于给定的...