参考:
https://www.npmjs.com/package/node-xlsx
Building a xlsx import xlsx from 'node-xlsx'; // Or var xlsx = require('node-xlsx').default; const data = [[1, 2, 3], [true, false, null, 'sheetjs'], ['foo', 'bar', new Date('2014-02-19T14:30Z'), '0.3'], ['baz', null, 'qux']]; //二维数组 var buffer = xlsx.build([{name: "mySheetName", data: data}]); // Returns a buffer
fs.writeFile(file, data[, options], callback)
结合起来写成
function export_ex(file_name,sheet_name,ex_data,callback){ var xlsx = require('node-xlsx'); var t_data = xlsx.build([{name: sheet_name, data: ex_data}]); fs.writeFile('dir/'+file_name+'.xlsx', t_data, 'binary', callback); }
如果从数据库读取出来的数据是这种形式[{},{},{}],需要转成二维数组形式
参考:
二维数组的声明:http://www.cnblogs.com/ymwangel/p/5875081.html
var arr = new array(); //先声明一维 for(var i=0;i<5;i++){ //一维长度为5 arr[i]=new array(); //在声明二维 for(var j=0;j<5;j++){ //二维长度为5 arr[i][j]=1; } }
对象转化为数组:http://www.cnblogs.com/lijuntao/p/6604276.html
var arr = [ ]; for ( var i in data ){ var str = i + “=“ + data[ i ]// i 就代表 data 里面的 user pass 等等 而data[ i ] 就代表 userName 12121 就是 i 所对应的值; arr.push( str ); } 这样就会得到 arr = [ user = userName, pass = 12121 ];
结合起来写成:
var ex_data = this.base.database; //[{},{},{},{}] var field = [['title','title2']] for(var i=0;i<ex_data.length;i++){ var arr = []; for ( var j in ex_data[i] ){ if(j == 'style_no'){ var str = ex_data[i][j]; arr.push( str ); } if(j == 'style_name'){ var str = ex_data[i][j]; arr.push( str ); } } field.push(arr); }