JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/alasql/0.3.2/alasql.min.js"></script>
<button onClick="exportData()">Export data</button>
<xmp id="output"></xmp>
JavaScript
var mystyle = {
sheetid: 'My Big Table Sheet',
headers: true,
caption: {
title:'My Big Table',
style:'font-size: 50px; color:blue;' // Sorry, styles do not works
},
style:'background:#00FF00',
column: {
style:'font-size:30px'
},
columns: [
{columnid:'email'},
{columnid:'dob', title: 'Birthday', width:300},
{columnid:'name'},
{
columnid:'name',
title: 'Number of letters in name',
width: '300px',
cell: {
value: function(value){return value.length}
}
},
],
row: {
style: function(sheet,row,rowidx){
return 'background:'+(rowidx%2?'red':'yellow');
}
},
rows: {
4:{cell:{style:'background:blue'}}
},
cells: {
2:{
2:{
style: 'font-size:45px;background:pink',
value: function(value){return value.substr(1,3);}
}
}
}
};
exportData = function () {
alasql('SELECT * INTO XLS("names.xls",?) FROM ?',[mystyle,items]);
};
var items = [{
name: "John Smith",
email: "j.smith@example.com",
dob: "1985-10-10"
}, {
name: "Jane Smith",
email: "jane.smith@example.com",
dob: "1988-12-22"
}, {
name: "Jan Smith",
email: "jan.smith@example.com",
dob: "2010-01-02"
}, {
name: "Jake Smith",
email: "jake.smith@exmaple.com",
dob: "2009-03-21"
}, {
name: "Josh Smith",
email: "josh@example.com",
dob: "2011-12-12"
}, {
name: "Josh Smith",
email: "josh@example.com",
dob: "2011-12-12"
}, {
name: "Josh Smith",
email: "josh@example.com",
dob: "2011-12-12"
}, {
name: "Josh Smith",
...