FancyGrid Excel & CSV export

by FancyGrid Inc.

HTML

<script src="https://cdn.jsdelivr.net/npm/fancygrid/client/fancy.min.js"></script>

<div id="container"></div>

JavaScript

document.addEventListener("DOMContentLoaded", function() {

  new FancyGrid({
    title: 'Export to Excel and CSV',
    renderTo: 'container',
    width: 450,
    height: 400,
    data: data,
    theme: 'gray',
    resizable: true,
    defaults: {
      type: 'string',
      width: 100,
      sortable: true,
      ellipsis: true,
      resizable: true
    },
    exporter: true,
    tbar: [{
      text: 'Export to Excel',
      handler: function() {
        this.exportToExcel();
      }
    }, {
      text: 'Export to CSV',
      handler: function() {
        this.exportToCSV({
          fileName: 'myCSV',
          header: true
        });
      }
    }],
    columns: [{
      index: 'company',
      locked: true,
      title: 'Company'
    }, {
      index: 'name',
      title: 'Name'
    }, {
      index: 'surname',
      title: 'Sur Name'
    }, {
      index: 'age',
      title: 'Age',
      width: 60,
      type: 'number'
    }]
  });

});

var data = [{
    name: 'Ted',
    surname: 'Smith',
    position: 'Java Developer',
    email: 'ted.smith@gmail.com',
    company: 'Electrical Systems',
    age: 30,
    knownledge: 'Java, Ruby'
  },
  {
    name: 'Ed',
    surname: 'Johnson',
    position: 'C/C++ Market Data Developer',
    email: 'ed.johnson@gmail.com',
    company: 'Energy and Oil',
    age: 35,
    knownledge: 'C++'
  },
  {
    name: 'Sam',
    surname: 'Williams',
    position: 'Technical Analyst',
    email: 'sam.williams@gmail.com',
    company: 'Airbus',
    age: 38,
    knownledge: ''
  },
  {
    name: 'Alexander',
    surname: 'Brown',
    position: 'Project Manager',
    email: 'alexander.brown@gmail.com',
    company: 'Renault',
    age: 24,
    knownledge: ''
  },
  {
    name: 'Nicholas',
    surname: 'Miller',
    position: 'Senior Software Engineer',
    email: 'nicholas.miller@gmail.com',
    company: 'Adobe',
    age: 33,
    knownledge: 'Unix, C/C++'
  },
  {
    name: 'Andrew',
    surname: 'Thompson',
    position: 'Agile Project...