我有一张桌子:
Name Reg.number Limit Date
Jon 123455665 100 000.00 24.09.2018
Foo 123423423 55 000.00 23.09.2018
我正在使用数据表创建excel,它可以正常工作,但是我需要在导出的excel中指定数据类型。 现在,在excel中,所有数据都被认为是“ Genereal”,但我需要它来认识到这一点:
Jon = text
Reg.number = text
Limit = Number (In perfect scenario with thousand separator and 2 digits after .)
Data = date
到目前为止,这是我的代码:
<script>
$(document).ready(function() {
$('#datatable').DataTable();
$.fn.dataTable.moment( 'D.M.YYYY' );
var table = $('#datatable-buttons').DataTable({
lengthChange: false,
buttons: ['excel'],
});
table
.order( [4 , 'desc'] )
.draw();
table.buttons().container()
.appendTo('#datatable-buttons_wrapper .col-md-6:eq(0)');
} );
所以我当前的输出是: Excel中所有数据均视为“通用”。
我想要的输出是: Excel,其中根据数据类型考虑所有列。文字,数字(十进制),日期。
我真的无法在数据表文档中找到答案。他们实际上有1-2个示例,它们并不能说明太多,因此,我将感谢代码示例,而不是指向我已经阅读了几个小时的文档的链接。
答案 0 :(得分:0)
如上所述,我相信您需要将这些值转换为可识别的值。问题是Excel(或其他读者),它当然不能弄清楚应该将“ 55 000.00”视为一个数字。作为一个人,我也不知道该如何解释:)
exportOptions: {
format: {
body: function(data, row, column, node) {
switch (column) {
case 2 :
return data.replace(/ /, ',')
break
case 3 :
return moment(data, 'DD.MM.YYYY').format('MM/DD/YYYY')
break
default :
return data
break
}
}
}
}
根据您的需要进行修改。摆弄了-> https://jsfiddle.net/sv42o8yw/