59 lines
1.8 KiB
JavaScript
59 lines
1.8 KiB
JavaScript
var express = require('express');
|
|
var nodeExcel = require('excel-export');
|
|
var app = express();
|
|
|
|
app.get('/Excel', function(req, res){
|
|
var conf ={};
|
|
// uncomment it for style example
|
|
// conf.stylesXmlFile = "styles.xml";
|
|
conf.cols = [{
|
|
caption:'string',
|
|
captionStyleIndex: 1,
|
|
type:'string',
|
|
beforeCellWrite:function(row, cellData){
|
|
return cellData.toUpperCase();
|
|
}
|
|
, width:15
|
|
},{
|
|
caption:'date',
|
|
type:'date',
|
|
beforeCellWrite:function(){
|
|
var originDate = new Date(Date.UTC(1899,11,30));
|
|
return function(row, cellData, eOpt){
|
|
// uncomment it for style example
|
|
// if (eOpt.rowNum%2){
|
|
// eOpt.styleIndex = 1;
|
|
// }
|
|
// else{
|
|
// eOpt.styleIndex = 2;
|
|
// }
|
|
if (cellData === null){
|
|
eOpt.cellType = 'string';
|
|
return 'N/A';
|
|
} else
|
|
return (cellData - originDate) / (24 * 60 * 60 * 1000);
|
|
}
|
|
}()
|
|
, width:20.85
|
|
},{
|
|
caption:'bool',
|
|
type:'bool'
|
|
},{
|
|
caption:'number',
|
|
type:'number',
|
|
width:30
|
|
}];
|
|
conf.rows = [
|
|
['pi', new Date(Date.UTC(2013, 4, 1)), true, 3.14159],
|
|
["e", new Date(2012, 4, 1), false, 2.7182],
|
|
["M&M<>'", new Date(Date.UTC(2013, 6, 9)), false, 1.61803],
|
|
["null date", null, true, 1.414]
|
|
];
|
|
var result = nodeExcel.execute(conf);
|
|
res.setHeader('Content-Type', 'application/vnd.openxmlformats');
|
|
res.setHeader("Content-Disposition", "attachment; filename=" + "Report.xlsx");
|
|
res.end(result, 'binary');
|
|
});
|
|
|
|
app.listen(3000);
|
|
console.log('Listening on port 3000'); |