如何将dataTable导出为Excel格式?
How to export dataTable as Excel format?
我使用了 tableTools 插件来导出数据表数据,我包含了以下插件
<script src="js/jquery-1.12.3.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/moment/moment.min.js" type="text/javascript"></script>
<script src="js/jquery.dataTables.js" type="text/javascript"></script>
<script src="js/dataTables.tableTools.js"></script>
HTML代码
<table id="result_table" class="display table table-bordered" cellspacing="0" width="100%"></table>
和我的初始化部分,
var oTable = $('#result_table').dataTable({
//"iDisplayLength": 50,
//"order" : [[0,"desc"]],
"columnDefs": [
{ "width": "16%", "targets": 1 }
],
"lengthMenu": [[10, 50, 100, -1], [10, 50, 100, "All"]],
"dom": 'T<"clear">lfrtip',
"tableTools": {
"sSwfPath": "copy_csv_xls_pdf.swf"
}
});
我的实际结果是
如果我单击 Excel 按钮,我的另存为 window 是
它保存的 CSV 文件不是 Xls 或 Xlsx 格式,CSV 按钮和 Excel 按钮都是仅导出 CSV 文件格式。这就是我需要导出 Excel 格式的问题.. 请分享您的建议或解决方案
这就是我所做的并且对我有用。
如果对你有帮助,请告诉我。
<script src="/js/jquery-1.12.0.min.js"></script>
<script src="/js/datatables/jquery.dataTables.min.js"></script>
<script src="/js/datatables/dataTables.bootstrap.min.js"></script>
<script src="/js/datatables/dataTables.buttons.min.js"></script>
<script src="/js/datatables/buttons.bootstrap.min.js"></script>
<script src="/js/datatables/jszip.min.js"></script>
<script src="/js/datatables/pdfmake.min.js"></script>
<script src="/js/datatables/vfs_fonts.js"></script>
<script src="/js/datatables/buttons.html5.min.js"></script>
<script src="/js/datatables/buttons.print.min.js"></script>
<script src="/js/datatables/buttons.colVis.min.js"></script>
var table = $('#example').DataTable({
lengthChange: false,
buttons: [ 'copy', 'excel', 'pdf', 'colvis' ]
});
table.buttons().container().appendTo( '#example_wrapper .col-sm-6:eq(0)' );
使用这种方法
oTableTools: {
sSwfPath: "copy_csv_xls_pdf.swf",
aButtons: [
{ sExtends: "xls",
mColumns: 'visible',
sFileName: 'export.xls',
sToolTip: 'Save current table as XLS'
}
]
}
重要的是 sExtends: "xls"
和 sFileName
以确保下载文件的附加文件名正确。
但是正如其他人在评论中提到的那样,您真的应该考虑使用 buttons plugin, here is a demo using that -> https://jsfiddle.net/zm825k01/
我使用了 tableTools 插件来导出数据表数据,我包含了以下插件
<script src="js/jquery-1.12.3.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/moment/moment.min.js" type="text/javascript"></script>
<script src="js/jquery.dataTables.js" type="text/javascript"></script>
<script src="js/dataTables.tableTools.js"></script>
HTML代码
<table id="result_table" class="display table table-bordered" cellspacing="0" width="100%"></table>
和我的初始化部分,
var oTable = $('#result_table').dataTable({
//"iDisplayLength": 50,
//"order" : [[0,"desc"]],
"columnDefs": [
{ "width": "16%", "targets": 1 }
],
"lengthMenu": [[10, 50, 100, -1], [10, 50, 100, "All"]],
"dom": 'T<"clear">lfrtip',
"tableTools": {
"sSwfPath": "copy_csv_xls_pdf.swf"
}
});
我的实际结果是
如果我单击 Excel 按钮,我的另存为 window 是
它保存的 CSV 文件不是 Xls 或 Xlsx 格式,CSV 按钮和 Excel 按钮都是仅导出 CSV 文件格式。这就是我需要导出 Excel 格式的问题.. 请分享您的建议或解决方案
这就是我所做的并且对我有用。 如果对你有帮助,请告诉我。
<script src="/js/jquery-1.12.0.min.js"></script>
<script src="/js/datatables/jquery.dataTables.min.js"></script>
<script src="/js/datatables/dataTables.bootstrap.min.js"></script>
<script src="/js/datatables/dataTables.buttons.min.js"></script>
<script src="/js/datatables/buttons.bootstrap.min.js"></script>
<script src="/js/datatables/jszip.min.js"></script>
<script src="/js/datatables/pdfmake.min.js"></script>
<script src="/js/datatables/vfs_fonts.js"></script>
<script src="/js/datatables/buttons.html5.min.js"></script>
<script src="/js/datatables/buttons.print.min.js"></script>
<script src="/js/datatables/buttons.colVis.min.js"></script>
var table = $('#example').DataTable({
lengthChange: false,
buttons: [ 'copy', 'excel', 'pdf', 'colvis' ]
});
table.buttons().container().appendTo( '#example_wrapper .col-sm-6:eq(0)' );
使用这种方法
oTableTools: {
sSwfPath: "copy_csv_xls_pdf.swf",
aButtons: [
{ sExtends: "xls",
mColumns: 'visible',
sFileName: 'export.xls',
sToolTip: 'Save current table as XLS'
}
]
}
重要的是 sExtends: "xls"
和 sFileName
以确保下载文件的附加文件名正确。
但是正如其他人在评论中提到的那样,您真的应该考虑使用 buttons plugin, here is a demo using that -> https://jsfiddle.net/zm825k01/