我在我的JSP页面上有一个HTML表格,我希望通过单击按钮将其导出到Excel。
要做这件事的最好方法是什么?
(例如,我将如何使用可能是jQuery函数。)将HTML表导出为excel - 使用jQuery或Java
演示的任何代码示例。目的应该很大。
谢谢,
Pritish。
我在我的JSP页面上有一个HTML表格,我希望通过单击按钮将其导出到Excel。
要做这件事的最好方法是什么?
(例如,我将如何使用可能是jQuery函数。)将HTML表导出为excel - 使用jQuery或Java
演示的任何代码示例。目的应该很大。
谢谢,
Pritish。
我会推荐Apache POI,我们一直在使用它多年,从来没有任何问题。
的金润在线的例子来获得一个良好的开端,并在网站上的文档还不错:http://poi.apache.org/spreadsheet/quick-guide.html
用JQuery导出为Excel文件格式是不可能的。
您可以试用Java。有很多库可以做到这一点。
您将不得不在服务器端创建一些东西(如servlet)来读取html并创建excel文件并将其提供给用户。
您可以使用this library来帮助您进行转换。
而出口CSV格式。它也支持Excel。使用例如Apache POI HSSF或JExcepAPI导出为完全适用的XLS(X)格式的操作速度较慢且内存占用较大。
导出为CSV相对简单。您可以在this answer中找到完整的代码示例。
至于出口到使用JavaScript文件,这是不可能没有Flash的互动或服务器端。在Flash中,至今只有Downloadify库可以导出为简单的txt文件。此外,ExtJs似乎有一个CSV export library,但我找不到任何可行的演示页面。
Excel可以加载CSV(逗号分隔值)文件,这些文件基本上只是包含所有可以放入用逗号分隔的单独Excel单元格的文件。
我不知道jQuery如何处理将信息推送到可以下载的文件中,但似乎已经编写了一个jQuery库,至少可以将html表格转换为CSV格式,并且它在这里: http://www.kunalbabre.com/projects/table2CSV.php
编辑(2016年2月29日): 您可以结合使用table2csv实现以上FileSaver.js(这对于W3C HTML5规范saveAs()
的包装)。
的使用将最终看起来像:
var resultFromTable2CSV = $('#table-id').table2CSV({delivery:'value'});
var blob = new Blob([resultFromTable2CSV], {type: "text/csv;charset=utf-8"});
saveAs(blob, 'desiredFileName.csv');
您可以使用图书馆像http://jsoup.org/
解析表你得到的数据后,可以将其存储在Excel兼容的格式(CSV )或使用Java Excel中,像POI,或使用JDBC将数据写入Excel工作表库,请参阅下面的例子: Password Protected Excel File
我可以建议你尝试http://code.google.com/p/gwt-table-to-excel/,至少是服务器部分。
我也花了很多时间将html转换为excel后很多R & D我发现以下最简单的方法。
创建隐藏字段,并在你的HTML数据传递到你的servlet或控制器例如
<form id="formexcel" action="" method="post" name="formexcel">
<input type="hidden" name="exceldata" id="exceldata" value="" />
</form>
在您的href点击通话按钮下面的功能和使用文档通过你的HTML数据。 formexcel.exceldata.value和你的servlet或控制器document.formstyle.action
function exportDivToExcel() {
document.formexcel.exceldata.value=$('#htmlbody').html();
$("#lblReportForPrint").html("Procurement operation review report");
document.formstyle.method='POST';
document.formstyle.action='${pageContext.servletContext.contextPath}/generateexcel';
document.formstyle.submit();
}
现在,在您的控制器或servlet写以下代码
StringBuilder exceldata = new StringBuilder();
exceldata.append(request.getParameter("exceldata"));
ServletOutputStream outputStream = response.getOutputStream();
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=\"exportexcel.xls\"");
outputStream.write(exceldata.toString().getBytes());
我一直在使用jQuery插件table2excel。它工作得很好,不需要服务器端编码。
使用它很容易。只要加入jQuery的
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
现在包括table2excel脚本(记住的改变src目的地来匹配你的)
<script src="dist/jquery.table2excel.min.js"></script>
现在,只需调用脚本你想要exportet表。
$("#yourHtmTable").table2excel({
exclude: ".excludeThisClass",
name: "Worksheet Name",
filename: "SomeFile" //do not include extension
});
它也容易附着到一个按钮,像这样:
$("button").click(function(){
$("#table2excel").table2excel({
// exclude CSS class
exclude: ".noExl",
name: "Excel Document Name"
});
});
所有例子都直接从作者的GitHub页面截断并从jqueryscript.net
不,那不是真的。这绝对有可能! – 2015-11-25 21:15:49