I'm trying to export numeric data to Excel. The numeric formatting is as follows:
And the header and footer texts are formatted as bold.
This is the table:
<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>
This is my try:
<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>
But it doesn't convert the numeric data, and the header and footer texts are not formatted as bold. They are exported in Excel as string, except for the values 21.98 $, 10.99 $ and 10.99 $ (although they should be $21.980, $10.990 and $10.990) as follows:
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
The currency symbol ($
) appearing to the right, is a known bug, which the creator of DataTables is aware of.
As for the other things, I created a demo
And based on that:
You are pre-populating the amount with the dollar sign (at least, according to your posted HTML
code); don't do that! just provide the numerical value
Header and footer are indeed bold, both in display (right side of the screen shot below) and once exported to excel; check to ensure that the CSS isn't being overridden.
That said, check out for other formatting needs, that DataTables provides.
I do not know why my posted JSFiddle link does not include other libs... but for your reference, the following screenshot shows exactly the JS/CSS libs that were included in my re-build of your case:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With