我在将 Bootstrap 数据表行导出到 Excel 时遇到问题。
为了将数据导出到 Excel,我使用了一个名为的外部插件jquery.table2excel.js
.
导出数据表到excel的代码如下:
<script type="text/javascript" src="js/jquery.table2excel.js">
</script>
<script>
$(function() {
var startDate = $(".startDate").val();
var endDate = $(".endDate").val();
$("#exportExcel").click(function(){
$("#table_id").table2excel({
exclude: ".noExl",
//name: "Excel Document Name",
filename: "Data from " + startDate + " to " + endDate
});
});
$("#table_id").dataTable();
});
</script>
对于数据表,我使用以下库:
<script type="text/javascript" src="js/jquery.dataTables.min.js">
</script>
<script type="text/javascript" src="js/dataTables.bootstrap.js">
</script>
表如下:
<table id="table_id" class="table table-striped table-condensed table-
bordered">
<thead>`Table Headers here`</thead>
<tbody>`Rows from Database here`</tbody>
</table>
问题描述如下:
- 当我尝试使用导出功能时,只有可见行会导出到 Excel 中,而不是分页行。
例如假设如果我每页有 10 行,那么只有前 10 行将被导出,当我将每页行更改为 25 时,那么所有 25 行都会被导出。
我希望使用我正在使用的插件一次性导出所有行。有什么想法吗?
SOLUTION
您可以使用$() http://datatables.net/reference/api/%24%28%29方法来访问所有行,甚至不存在于 DOM 中,并使用这些行构造一个新表。然后你可以执行table2excel()
在新建的表上获取包含所有行的 Excel 文件。
例如:
$(function() {
var startDate = $(".startDate").val();
var endDate = $(".endDate").val();
$("#exportExcel").click(function(){
$('<table>')
.append(
$("#table_id").DataTable().$('tr').clone()
)
.table2excel({
exclude: ".excludeThisClass",
name: "Worksheet Name",
filename: "SomeFile" //do not include extension
});
});
$("#table_id").dataTable();
});
DEMO
See 这一页 http://embed.plnkr.co/bkHUiog7VaoQvNodfjvL/preview用于代码和演示。
NOTES
Excel 2013 打开由以下命令生成的文件时显示以下错误table2excel.js
.
Excel 无法打开文件[filename]
因为文件格式或文件扩展名无效。验证文件未损坏并且文件扩展名与文件格式匹配。
由于这个错误,我宁愿使用DataTables TableTools 插件 http://datatables.net/extensions/tabletools/相反,尽管它只能生成 CSV 文件并且还使用 Flash。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)