excel_export
by nmathur
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.21/js/jquery.dataTables.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css">
<script src="https://cdn.datatables.net/buttons/1.5.6/js/dataTables.buttons.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.2.4/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/fixedcolumns/3.2.4/js/dataTables.fixedColumns.min.js"></script>
<button type="button" onclick="printMarksExcel()">
Download
</button>
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>
<div>First Name</div></th>
<th>Last name</th>
<th>Position</th>
<th>Office</th>
<th>Salary</th>
</tr>
</thead>
<tbody>
<tr>
<td><span style="color:green;">ABC</span></td>
<td>Nixon</td>
<td>System Architect</td>
<td>Edinburgh</td>
<td>162700</td>
</tr>
<tr>
<td><span style="color:green;">Nobita</span></td>
<td>Winters</td>
<td>Accountant</td>
<td>Tokyo</td>
<td>162700</td>
</tr>
<tr>
<td><span style="color:green;">Aston</span></td>
<td>Cox</td>
<td>Junior Technical Author</td>
<td>San Francisco</td>
<td>162700</td>
</tr>
<tr>
<td><span style="color:green;">Yuvan</span></td>
<td>Kelly</td>
<td>Senior Javascript Developer</td>
...
JavaScript
var table;
$(document).ready(function () {
table = $('#example').DataTable({
dom: 'Bfrtip',
scrollY: "500px",
scrollX: true,
scrollCollapse: true,
paging: false,
searching: false,
fixedColumns: {
leftColumns: 3
},
select: true,
buttons: [
{
extend: 'excel', exportOptions: {
format: {
body: function (data, row, column, node) {
debugger;
if ($(data).is("a")) {
var result = $(data).html();
var element = $(result);//convert string to JQuery element
var finalResult = "";
element.each(function (index) {
switch ($(this)[0].nodeName) {
case 'SPAN': {
var text = $(this)[0].innerText;
if (text !== '' && text !== undefined) {
finalResult += text.trim();
}
break;
}
case 'BR': {
finalResult += "\n";
break;
}
}
});
return wrap(finalResult);
} else
if ($(data).is("span")) {
return...