<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/jszip-2.5.0/dt-1.10.20/b-1.6.1/b-html5-1.6.1/b-print-1.6.1/datatables.min.css"/>
 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/v/dt/jszip-2.5.0/dt-1.10.20/b-1.6.1/b-html5-1.6.1/b-print-1.6.1/datatables.min.js"></script>
    
    <meta charset=utf-8 />
    <title>DataTables - JS Bin</title>
  </head>
  <body>
    <div class="container">
      <table id="example" class="display nowrap" width="100%">
        <thead>
          <tr>
            <th>Name</th>
            <th>Col 1</th>
            <th>Col 2</th>
            <th>Total</th>
          </tr>
        </thead>
        <tfoot>
          <tr>
            <th>Name</th>
            <th>Col 1</th>
            <th>Col 2</th>
            <th>Total</th>
          </tr>
        </tfoot>
        <tbody>
          <tr>
            <td>Tiger Nixon</td>
            <td>1</td>
            <td>1</td>
            <td>t</td>
          </tr>
          <tr>
            <td>Garrett Winters</td>
            <td>2</td>
            <td>2</td>
            <td><a href='https://datatables.net/forums/discussion/80651'>foo</td>
          </tr>
        </tbody>
      </table>
    
    </div>
  </body>
</html>
 
body {
  padding: 0;
  color: #333;
  background-color: #fff;
}
 
function a_fxn_excel(child) {
    if (child.dataset.file){
        return `=HYPERLINK("${child.dataset.file}", "${child.dataset.file}")` ;
    }
    return `=HYPERLINK("${child.href}", "${child.textContent}")` ;
};
function export_options(a_fxn){
    return {
        columns: ':visible',
        format: {
            body: function(data, row, column, node) {
                switch(node.children.length) {
                case 0:
                    return data;
                case 1:
                    const child = node.children[0];
                    switch(child.tagName) {
                    case 'INPUT':
                        return child.value;
                    case 'SPAN':
                    case 'BUTTON':
                        return child.textContent;
                    case 'A':
                        return a_fxn(child);
                    default:
                        return data;
                    }
                default:
                    return data;
                }
            }
        }
    };
};
$(document).ready( function () {
  
  var table = $('#example').DataTable({
    dom: 'Bftrip',
    buttons: [
      {
        extend: 'excelHtml5',
        exportOptions :  export_options(a_fxn_excel)
      }
    ]
  });
  
  
} );
2 errors 6 warnings
Line 4: Unexpected '`'.
Line 4: Missing semicolon.
Line 6: Unexpected '`'.
Line 6: Missing semicolon.
Line 7: Unnecessary semicolon.
Line 19: 'const' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Line 30: Expected a 'break' statement before 'default'.
Line 37: Unnecessary semicolon.
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers