我从datatable导出excel表使用插件。在工作表中,除零(0)值外,所有值都正确。
以下是数据表的代码。
$('#example').DataTable({
//"scrollY": 300,
//"scrollX": true
dom: 'Bfrtip',
buttons: [
{ extend: 'excelHtml5', text: 'Get Excel' }
],
"sScrollY" : "300",
"sScrollX" : true,
"bScrollCollapse" : true,
"bSort" : true,
"iDisplayLength": 5
});
答案 0 :(得分:0)
尝试使用插件将字段类型设置为数字值。
看起来0被解释为字符串,这可以解释左对齐。
答案 1 :(得分:0)
您必须在buttons.html5.min.js文件中进行一些修改。
在buttons.html5.min.js和push方法中找到excelHtml5这个词
"数" === typeof a [c] || a [c] .match&& g.trim(a [c])。match(/ ^ - ?\ d +(。\ d +)?$ /)&& " 0" !== a [c] .charAt(0)
将" 0" 替换为 0
或以其他方式添加一个条件
!==(a [c] .charAt(0)&& a [c] .length> 1)
它会工作。希望它能满足你的要求。
一切顺利.. !!
答案 2 :(得分:0)
只需使用CSV按钮代替xcel按钮,它就可以正常工作: https://datatables.net/extensions/buttons/examples/html5/simple.html
无论
$(document).ready(function() {
$('#example').DataTable( {
dom: 'Bfrtip',
buttons: [
'copyHtml5',
'excelHtml5',
'csvHtml5',
'pdfHtml5'
]
} );
} )
或更个性化的方法(假设字体很棒,并应用一点CSS使其看起来更好)
//initialise the main table
table = $('#report').DataTable( {
"bFilter": true,
"bSort": true,
"bInfo": true,
"scrollX": scrollX,
lengthChange: true,
fixedHeader: {
header: true,
footer: footerFixed
},
buttons: [
{
extend: 'copy',
text: '<i class="fa fa-files-o"></i>',
titleAttr: 'Copy'
},
{
extend: 'csv',
text: '<i class="fa fa-file-excel-o"></i>',
titleAttr: 'CSV',
title: 'Subscribers'
},
{
extend: 'colvis',
text: '<i class="fa fa-columns"></i>',
titleAttr: 'Columns'
},
],
} );
table.buttons().container()
.appendTo( '#report_length' );
$('#report_length > label').css('padding-right', '10px');