我遇到了将Bootstrap Data Table Rows导出到Excel的问题。
将数据导出到Excel我使用的是名为 jquery.table2excel.js
的外部插件。
导出数据表的代码如下所示:
<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>
问题描述如下:
e.g。假设我每页有10行,那么只会导出前10行,当我将每页行数更改为25时,所有25行都会被导出。
我想用我正在使用的插件一次导出所有行。有什么想法吗?
答案 0 :(得分:6)
您可以使用$()
方法访问即使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();
});
请参阅this page以获取代码和演示。
Excel 2013在打开table2excel.js
生成的文件时显示以下错误。
Excel无法打开文件
[filename]
,因为文件格式或文件扩展名无效。验证文件是否已损坏,以及文件扩展名是否与文件格式匹配。
由于此错误,我宁愿使用DataTables TableTools plug-in,即使它只能生成CSV文件并使用Flash。
答案 1 :(得分:0)
我找到了解决方法here,用于将表格中的数据导出到Excel工作表中