数据表导出到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不被覆盖。

Excel的左侧是Excel;右侧是JSFiddle上显示的内容

也就是说, 检查DataTables提供的其他格式需求 。

编辑:

我不知道为什么我发布的JSFiddle链接不包括其他库…但为了您的参考,下面的屏幕截图精确显示了我的重新构build您的案例中包含的JS / CSS库:

的jsfiddle