数据表导出到Excel并将数字列格式化为货币
我试图将数字数据导出到Excel。 数字格式如下:
- 数千个分组分隔符:“。”
- 小数点指示符:“,”
- 显示的小数点数:“0”
- 前缀:“$”
页眉和页脚文本被格式化为粗体。
这是表格:
<table id="idtablainforme_ventaporfamilia" class="table table-striped table-striped table-bordered nowrap dataTable"> <thead> <tr> <th> <b>FAMILIA</b> </th> <th> <b>VENTA</b> </th> </tr> </thead> <tfoot> <tr> <th><b>TOTAL</b></th> <th><b>$12.925.150</b></th> </tr> </tfoot> <tbody> <tr><td>CHEQUERA MUJER</td><td>$5.231.760</td></tr> <tr><td>CARTERA</td><td>$3.487.630</td></tr> <tr><td>BILLETERA MUJER</td><td>$2.155.120</td></tr> <tr><td>NECESER</td><td>$21.980</td></tr> <tr><td>COSMETIQUERA</td><td>$10.990</td></tr> <tr><td>SET DE VIAJE</td><td>$10.990</td></tr> </tbody> </table>
这是我的尝试:
<script> $('#idtablainforme_ventaporfamilia').DataTable({ destroy: true, "searching": false, "paging": false, "ordering": false, "info": false, "autowidth": false, columns: [ { data: "1", render: $.fn.dataTable.render.text() }, { data: "2", render: $.fn.dataTable.render.number('.', ',', 0, '$') } ], footerCallback: function (tfoot, data, start, end, display) { var $th = $(tfoot).find('th').eq(1); $th.text($.fn.dataTable.render.number('.', ',', 0, '$').display($th.text())) }, dom: 'Bfrtip', buttons: [ { extend: 'excel', footer: true, title: 'INFORME DE VENTAS POR FAMILIA', text: '<i class="fa fa-file-excel-o"></i>', titleAttr: 'Exporta a EXCEL', } ] }); </script>
但它不会转换数字数据,并且页眉和页脚文本未格式化为粗体。 除了价值21.98 $,10.99 $和10.99 $(尽pipe它们应该是$ 21.980,$ 10.990和$ 10.990),它们以stringforms导出,如下所示:
FAMILIA VENTA CHEQUERA MUJER $5.494.310 CARTERA $5.231.760 BILLETERA MUJER $2.155.120 NECESER 21.98 $ COSMETIQUERA 10.99 $ SET DE VIAJE 10.99 $ TOTAL $12.925.150
货币符号( $
)出现在右边,是一个已知的错误 ,DataTables的创build者知道这个错误 。
至于其他的东西,我创build了一个演示
并基于此:
-
您预先填写美元符号(至less根据您发布的
HTML
代码); 不要这样做! 只是提供数值 -
页眉和页脚确实是大胆的,都在显示(下面的屏幕截图右侧),一旦出口到Excel; 检查以确保CSS不被覆盖。
也就是说, 检查DataTables提供的其他格式需求 。
编辑:
我不知道为什么我发布的JSFiddle链接不包括其他库…但为了您的参考,下面的屏幕截图精确显示了我的重新构build您的案例中包含的JS / CSS库: