Example #1
0
 }, function (err) {
     if (err) console.log(err);
     sheet.data = sheet.data.concat(rows);
     var conBuffer = ew.build([sheet]);
     fs.writeFileSync(filePath, conBuffer);
     rows.unshift(columns);
     // console.log(rows.length);
     // rows = rows);
     var dailyBuffer = ew.build([{name : 'result', data : rows}]);
     fs.writeFileSync(dailyFilePath, dailyBuffer);
     console.log('Everything was done');
 });
Example #2
0
Cache.prototype.writeXlsx = function writeXlsx(queryResult) {
  const self = this
  // loop through rows and build out an array of arrays
  const resultArray = []
  resultArray.push(queryResult.fields)
  for (let i = 0; i < queryResult.rows.length; i++) {
    const row = []
    for (let c = 0; c < queryResult.fields.length; c++) {
      const fieldName = queryResult.fields[c]
      row.push(queryResult.rows[i][fieldName])
    }
    resultArray.push(row)
  }
  const xlsxBuffer = xlsx.build([{ name: 'query-results', data: resultArray }])
  return new Promise((resolve, reject) => {
    fs.writeFile(self.xlsxFilePath(), xlsxBuffer, function(err) {
      // if there's an error log it but otherwise continue on
      // we can still send results even if download file failed to create
      if (err) {
        console.log(err)
      }
      return resolve()
    })
  })
}
 models[schema.name].find().exec().then(function (modelResponse) {
   var keys = _.keys(models[schema.name].schema.tree)
   var tab = []
   tab.push(keys)
   _.forEach(modelResponse, function (n, k) {
     var tempKey = []
     _.forEach(keys, function (key) {
       tempKey.push(n[key])
     })
     tab.push(tempKey)
   })
   var buffer = xlsx.build([{
     name: schema.name,
     data: tab
   }])
   inquirer.prompt(pathXlsxQuestion).then(function (pathAnwser) {
     if (!fs.existsSync(path.parse(pathAnwser.path).dir)) {
       fs.mkdirSync(path.parse(pathAnwser.path).dir)
     }
     fs.writeFile(pathAnwser.path, buffer, function (err) {
       if (err) return console.log(err)
       console.log(chalk.green('Created \n Path:' + pathAnwser.path))
       process.exit()
     })
   })
 }) // END OF MODEL FIND()
Example #4
0
 dbappuser.find({}, function(err, docs){
   if (err) {
     return callback({ret: 2});                            // RETURN: 查询出错
   }
   var th = new Array();
   var data = new Array();
   th = ["编号", "昵称", "电话", "邮箱", "第三方登录", "性别", "是否封停", "是否为员工(0表示非员工)"];
   data.push(th);
   for (var index=0; index<docs.length; index++){
     var td = new Array();
     td.push({value: docs[index]._id.toString(), formatCode: "General"});
     td.push({value: docs[index].nickname      , formatCode: "General"});
     td.push({value: docs[index].tel           , formatCode: "General"});
     td.push({value: docs[index].email         , formatCode: "General"});
     td.push({value: docs[index].thirdpath     , formatCode: "General"});
     td.push({value: docs[index].sex           , formatCode: "General"});
     td.push({value: docs[index].disable       , formatCode: "General"});
     td.push({value: docs[index].isworker      , formatCode: "General"});
     data.push(td);
   }
   var buffer = xlsx.build({worksheets: [
     {name: "userData", data: data}
     ]});
   var appUserPath = config.appPath() + "/static/appuser/appuser.xlsx";
   fs.writeFileSync(appUserPath, buffer);
   return callback({ret: 1, appUserPath: appUserPath});                            // RETURN: 处理成功
 });
Example #5
0
/**
 * Write data to excel file.
 *
 * @param  {Array<Object>} shoes
 * @param  {String} filename
 */
function writeFile(shoes, filename) {
  var data = [
    ['id', 'color', 'size', 'price']
  ]
  shoes.forEach(shoe => {
    data.push([
      shoe.id,
      shoe.color,
      shoe.size,
      shoe.price
    ])
  })
  var buffer = xlsx.build([{
    name: 'Shoes',
    data: data
  }])
  fs.writeFile(filename, buffer, err => {
    if (err) {
      console.log('write file fail')
      console.trace(err)
    } else {
      console.log('write file ok')
    }
  })
}
    Limitation.getUnderLimatationGifts(function (items) {
        if (items) {
            var schema = {
                              worksheets: [
                                  {
                                      "name" : "礼品剩余数量提醒",
                                      "data" : [
                                         ["礼品名称", "品牌", "价格", "剩余库存数量", "警戒线"]
                                      ]
                                  }
                              ]
                        };

            for (var i = 0; i < items.length; i++) {
                var item = items[i];
                var arr = [];
                arr.push(item.name);
                arr.push(item.brand);
                arr.push(item.price);
                arr.push(item.num);
                arr.push(item.limitNum);
                schema.worksheets[0].data.push(arr);
            }

            var buffer = xlsx.build(schema);

            callback(buffer);
        }
    });
Example #7
0
var savaxlsx = function(sheets, filepath, callback) {
    var buffer = xlsx.build(sheets);

    fs.writeFile(filepath, buffer, 'utf-8', function(err) {
        callback(err);
    });
}
Example #8
0
db.query(selectSQL, function(err, rows) {
	var data = [];

	//表头
	if (rows.length != 0) {
		var keyArr = [];
		for (var key in rows[0]) {
			keyArr.push(key);
		}
		data.push(keyArr);
	}

	//json数组遍历
	for (var i in rows) {
		var arr = [];
		var value = rows[i];
		//json key 遍历
		for (var key in value) {
			arr.push(value[key]);
		}
		data.push(arr);
	}
	var buffer = xlsx.build([
	    {
	        name:'sheet1',
	        data:data
	    }        
	]);

	//将文件内容插入新的文件中
	var fileName = new Date().getTime()+ '.xlsx';
	fs.writeFileSync(fileName,buffer,{'flag':'w'});

});
Example #9
0
router.get('/export1', wrap(function* (req, res, next) {
    //var obj = {"worksheets":[{"data":[["姓名","性别","年龄"],["李晓龙","男","24"]]}]};
    //var file = xlsx.build(obj);
    //var data = [[1,2,3],[true, false, null, 'sheetjs'],['foo','bar',new Date('2014-02-19T14:30Z'), '0.3'], ['baz', null, 'qux']];
    var userDatas = yield users.find().toArrayAsync();
    var data = [];
    var pros = [];
    if (userDatas.length) {
        for (var pro in userDatas[0]) {
            pros.push(pro);
        }
    }
    data.push(pros);
    for (var i = 0; i < userDatas.length; i++) {
        var row = [];
        for (var j = 0; j < pros.length; j++) {
            row.push(userDatas[i][pros[j]]);
        }
        data.push(row);
    }
    var box = xlsx1.parse('./modules/template2.xlsx');
    //box[0].data = data;
    //var buffer = xlsx1.build([{name: "mySheetName", data: data}]);
    var buffer = xlsx1.build(box);
    //fs.writeFileSync('./public/temp/user.xlsx', buffer, 'binary');
    //res.send('user.xlsx');
    res.setHeader('Content-Type', 'application/vnd.openxmlformats');
    res.setHeader("Content-Disposition", "attachment; filename=" + "Report.xlsx");
    res.end(buffer, 'binary');
}));
Example #10
0
}, function(err, res) {
    fs.writeFileSync('book.xlsx', xlsx.build([{
        name: "sheet",
        data: result
    }]), 'binary');
    console.log('done');
});
Example #11
0
        jobDao.queryJobDetails(host,req.query.jobId,function(data){
            //加载表格列配置文件
            var columns = require('../configs/modules/jobDetailColumn');
            var datas = [];
            var total_time = 0;
            var titles = [];
            columns.forEach(function (obj) {
                titles.push(obj.title);
            });
            datas.push(titles);
            for (var i = 0; i < data.Tasks.length; i++) {
                var row = [];
                for (var j = 0; j < columns.length; j++) {
                    var formatter = columns[j].formatter_back ? columns[j].formatter_back : columns[j].formatter;
                    row.push(formatter ? formatter(data.Tasks[i][columns[j].field],data.Tasks[i]) : data.Tasks[i][columns[j].field]);
                    if(columns[j].field == 'singleTime'){
                        total_time += formatter(data.Tasks[i][columns[j].field],data.Tasks[i]);
                    }
                }
                datas.push(row);
            }
            //加载总机时
            total_time = total_time / 3600;
            total_time = total_time.toFixed(2);
            var last_row = ['总机时(h)', total_time];
            datas.push(last_row);

            res.setHeader('Content-Type', 'application/vnd.openxmlformats');
            res.setHeader("Content-Disposition", "attachment; filename=" + taskName+ ".xlsx");
            var buffer = xlsx.build([{name: "mySheetName", data: datas}]);
            res.end(buffer, 'binary');
        });
Example #12
0
function createNewExcel(dataFilePath) {
  var xlsx = require('node-xlsx').default;
  var fs = require('fs');
  var path = require('path');
  const distDataFilePath = path.join('upload', path.basename(dataFilePath, '.xlsx') + '韵达发中的值ERP没有的.xlsx');
  const workSheetsFromBuffer = xlsx.parse(fs.readFileSync(dataFilePath));

  // TODO 去重优化
  var data1 = changeToSimpleArray(workSheetsFromBuffer[1]);
  var data2 = changeToSimpleArray(workSheetsFromBuffer[0]);

  var output = [];

  // data1中的值data2没有
  for(var i = 0; i < data1.length; i++) {
    if (data2.indexOf(data1[i]) >= 0) {
      // console.log(data1[i]);
    } else {
      var a = [];
      a.push(data1[i]);
      output.push(a);
    }
  }

  function changeToSimpleArray(data) {
    var result = [];
    for(var i = data.data.length - 1; i >= 0; i--){
      result.push(data.data[i][0] + '');
    }
    return result;
  }

  var buffer = xlsx.build([{name: "mySheetName", data: output}]); // Returns a buffer
  fs.writeFileSync(distDataFilePath, buffer, {'flag':'w'}); // 如果文件存在,覆盖
}
Example #13
0
exports.exportAll = async (req, res) => {
    // Exporting users as XLSX .
    if (!req.permissions.export) {
        return errors.makeForbiddenError(res, 'You are not allowed to see statistics.');
    }

    const applications = await Application.findAll({ where: { event_id: req.event.id } });

    const headersNames = helpers.getApplicationFields(req.event);
    const headers = Object.keys(headersNames).map(field => headersNames[field]);

    const resultArray = applications
        .map(application => application.toJSON())
        .map(application => helpers.flattenObject(application))
        .map((application) => {
            return Object.keys(headersNames).map(field => helpers.beautify(application[field]));
        });

    const resultBuffer = xlsx.build([
        {
            name: 'Application stats',
            data: [
                headers,
                ...resultArray
            ]
        }
    ]);


    res.setHeader('Content-type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    res.setHeader('Content-disposition', 'attachment; filename=stats.xlsx');

    return res.send(resultBuffer);
};
Example #14
0
 }, function() {
   row[1] = serviceString;
   row[2] = noServiceString;
   xlsxFile.cellListView.push(row);
   //console.log(row);
   var buffer = xlsx.build([{name: xlsxFile.name, data: xlsxFile.cellListView}]);
   fs.writeFileSync(xlsxFile.name + '.xlsx', buffer, 'binary');
 });
Example #15
0
 db.config.findOne({key: "allowCsvDownload"}, function (err, config) {
     var preventDownload = config && config.value === "false";
     if (!preventDownload) {
         
         // loop through rows and build out an array of arrays
         var resultArray = [];
         resultArray.push(fields);
         for (var i = 0; i < results.rows.length; i++) {
             var row = [];
             for (var c = 0; c < fields.length; c++) {
                 var fieldName = fields[c];
                 row.push(results.rows[i][fieldName]);
             }
             resultArray.push(row);
         }
         
         // build out and write xlsx file
         var xlsxBuffer = xlsx.build([{name: "query-results", data: resultArray}]); // returns a buffer 
         var xlsxPath = path.join(app.get('dbPath'), "/cache/", cache.cacheKey + ".xlsx");
         fs.writeFile(xlsxPath, xlsxBuffer, function (err) {
             if (err) {
                 console.log(err);
             }
             json2csv({data: results.rows, fields: fields}, function (err, csv) {
                 if (err) {
                     console.log(err);
                     res.send({
                         success: true,
                         serverMs: end - start,
                         results: results.rows
                     });
                 } else {
                     var csvPath = path.join(app.get('dbPath'), "/cache/", cache.cacheKey + ".csv");
                     fs.writeFile(csvPath, csv, function (err) {
                         if (err) console.log(err);
                         res.send({
                             success: true,
                             serverMs: end - start,
                             meta: meta,
                             results: results.rows,
                             incomplete: results.incomplete,
                             csvUrl: '/query-results/' + cache.cacheKey + '.csv'
                         });
                     });
                 }
             });
         });
         
     } else {
         res.send({
             success: true,
             serverMs: end - start,
             meta: meta,
             results: results.rows,
             incomplete: results.incomplete
         });
     }
 });
Example #16
0
function downloadData(name, data, res){
	var buffer = xlsx.build([{name: name, data: data}]);
	var filepath = temp.path({suffix: '.xlsx'});
	fs.writeFile(filepath, buffer, function(err){
		res.download(filepath, name + ".xlsx", function(){
			fs.unlink(filepath);
		});
	});
}
Example #17
0
var RegisterTextDownloadTask = function (url, texts, res_path) {
    var xls_path = conf.store_base + path.sep + res_path + path.sep + format('yy-MM-dd') + path.sep;
    var data = [];
    for (var i = 0; i < texts.length; i++) {
        data.push([url, texts[i]]);
    }
    var buffer = xlsx.build([{name: "scrapy_text", data: data}]);
    fs.writeFile(xls_path + url.substr(-4) +'.xlsx', buffer, 'binary');
}
Example #18
0
 getRows().then(function() {
   var rows = $scope.rows.d;
   rows.unshift($scope.rows.f);
   var buffer = xlsx.build([{name: "ListCommissionOpen", data: rows}]);
   var id = helper.newUUID();
   var fname = '/output/commission_open_list_'+id+'.xlsx';
   fs.writeFileSync(path.normalize(__dirname + '/../../public'+fname), buffer);
   res.send({
     status:true,
     file: fname
   });
 }).catch(function(e) {
Example #19
0
ExcelWriter.prototype.build = function() {
    this._buffer = xlsx.build([{name : this._sheetName, data :  this._data}]);
    fs.writeFile(this._file, this._buffer, function(err) {
        console.error('Unable to write file ' + this._file);
    });
    // fs.open(this._file , 'w+', function(err, fd) {
    //     fs.write(fd, this._buffer, function(err, num, str) {
    //         if(err) {
    //             console.error(err);
    //         }
    //     });
    // });
}
Example #20
0
router.get('/exportExcel', function(req, res, next) {
	var 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}]);
	fs.writeFileSync('b.xlsx', buffer, 'binary');
	res.send('export successfully!');

});
					function(err, rs) {
						if (err) {
							res.type("text/plain").status(500).send("ERROR: " + err);
						} else {
							var out = [];
							for (var i = 0; i < rs.length; i++) {
								out.push([rs[i]["PurchaseOrderItemId"], rs[i]["ItemPos"], rs[i]["ProductID"], rs[i]["Amount"]]);
							}
							var result = excel.build([{
								name: "Purchase Orders",
								data: out
							}]);
							res.header("Content-Disposition", "attachment; filename=Excel.xlsx");
							res.type("application/vnd.ms-excel").status(200).send(result);
						}
					});
Example #22
0
  serialize: function (req, res, next) {
    debug('application/vnd.openxmlformats handler')
    debug('Method: ', req.call_method)
    var fields = req.fieldSelection
    var header = req.fieldHeader

    if (req.isDownload) {
      res.attachment('PATRIC_' + req.call_collection + '.xlsx')
      // res.set("content-disposition", 'attachment; filename="patric3_' + req.call_collection + '_query.xlsx"');
    }

    res.set('Content-Type', 'application/vnd.openxmlformats')

    if (res.results && res.results.response && res.results.response.docs) {
      if (!fields) {
        fields = Object.keys(res.results.response.docs[0])
      }

      // debug("fields: ", fields);
      const data = res.results.response.docs.map(function (o) {
        return fields.map(function (field) {
          if (typeof o[field] === 'object') {
            if (o[field] instanceof Array) {
              return o[field].join(';')
            }
            return JSON.stringify(o[field])
          }
          return o[field] || ''
        })
        // return row;
      })

      if (header) {
        data.unshift(header)
      } else {
        data.unshift(fields)
      }

      var d = xlsx.build([{name: 'patric3_query', data: data}])
      res.end(d, 'binary')
    } else {
      res.status(404)
      // res.end();
    }
  }
Example #23
0
 async downloadAction() {
   let data = this.post();
   let codeModel = this.model('code');
   let arr = data.date.split('-');
   data.year = parseInt(arr[0]);
   data.month = parseInt(arr[1]);
   let result = await codeModel.searchCodeAllByDate(data);
   let worker_name = [];
   let local_name = [];
   let code = [];
   let entry_dt = [];
   let create_dt = [];
   let xlsxContent = [];
   xlsxContent.push(['残值编码', '定损员', '部门', '录入时间', '生成时间']);
   for(var i in result) {
     let col = [];
     col.push(result[i].code_code);
     col.push(result[i].worker.name);
     col.push(result[i].worker.local.name);
     col.push(result[i].entry_dt);
     col.push(result[i].create_dt);
     xlsxContent.push(col);
   }
   var buffer = build([{name: "mySheetName", data: xlsxContent}]);
   let fileName = uuid.v1();
   fs.writeFileSync(`./www/static/download/${fileName}.xlsx`, buffer);
   //const r = [[1, 2, 3], [true, false, null, 'sheetjs'],
   //  ['foo', 'bar', new Date('2014-02-19T14:30Z'), '0.3'], ['baz', null, 'qux']];
   //let xlsxContent = [];
   //let xlsxTitle = ['生成数量'];
   //xlsxContent.push(xlsxTitle);
   //for(var i in result) {
   //  let col = [];
   //  for(var key in result[i]) {
   //    col.push(result[i]['count(id)']);
   //  }
   //  xlsxContent.push(col);
   //}
   //var buffer = build([{name: "mySheetName", data: xlsxContent}]);
   //let fileName = uuid.v1();
   //fs.writeFileSync(`./www/static/download/${fileName}.xlsx`, buffer);
   this.json({
     fileName: fileName
   });
 }
Example #24
0
        export: function (req, res) {
            var data = [
                [1,2,3],
                [true, false, null, 'sheetjs'],
                ['foo','bar',new Date('2014-02-19'), '0.4'],
                ['baz', null, 'qux']
            ];

            var fs = require('fs'),
                buffer = xlsx.build([{name: "mySheetName", data: data}]),
                filePath = './files/' + new Date().valueOf().toString() + Math.floor(Math.random() * 1e5) + '.xlsx';

            fs.writeFileSync(filePath, buffer);

            res.sendfile(filePath, function () {
                fs.unlink(filePath);
            });
        }
Example #25
0
 function(err, results) {
     if(err)  return cb(err);
     var sheets = [];
     sheets.push({name: "20及以上等级球队表", data:results.db.level});
     sheets.push({name: "A及以上品阶球员表", data:results.db.quality});
     if(stash.version && stash.version == 2) { //简体IOS
         sheets.push({name: "紫色及以上品质球员表", data:results.db.star});
         sheets.push({name: "2次及以上钻石十连抽表", data:results.log.money});
     } else {
         sheets.push({name: "蓝色及以上品质球员表", data:results.db.star});
         sheets.push({name: "3次及以上钻石十连抽表", data:results.log.money});
     }
     sheets.push({name: "5次及以上金币十连抽表", data:results.log.coin});
     var buffer = xlsx.build(sheets); 
     res.setHeader('Content-Type', 'application/vnd.openxmlformats');
     res.setHeader("Content-Disposition", "attachment; filename=" + "openServerDatas.xlsx");
     res.end(buffer, 'binary');
     cb(null);
 });
Example #26
0
 getRows().then(function() {
     var rows = $scope.rows.d;  //console.log("$scope.rows.d = ", $scope.rows.d);
     rows.unshift($scope.rows.f);  //console.log("$scope.rows.f = ", $scope.rows.f);
     try {
       var buffer = xlsx.build([{name: "ListPaymentTracking", data: rows}]);
     } catch (e) {
       console.log('ERROR=', e);
     }
     var id = helper.newUUID();
     var fname = '/output/payment_tracking_'+id+'.xlsx';
     try {
       fs.writeFileSync(path.normalize(__dirname + '/../../../public'+fname), buffer);
     } catch (e) {
       console.log('ERROR2=', e);
     }
     res.send({
       status:true,
       file: fname
     });
 }).catch(function(e) {
Example #27
0
 User.find({}, '-_id username regDate area', function (err, docs) {
   if (err) {
     console.log("出错了");
   } else {
     console.log(docs);
     var userName = ['用户名'];
     var userArea = ['用户地址'];
     var userDate = ['用户注册时间'];
     for(var  i = 0 ; i<docs.length;i++)
     {
       userName.push(docs[i].username);
       userArea.push(docs[i].area);
       userDate.push(docs[i].regDate);
     }
       var node_xlsx = require('node-xlsx');
       var obj = [{    //原来 name(sheetNames)  和 data(sheets) 是写死的  网上很多node-xlsx 都不符合规范都帖上来
         'name':'我',
         "data":[
                 ["索引1","索引2","c"],
                 ['第一','第二','第三']
                ]
       },{
         'name':'你',
         "data":[
           ["sdf引1","ff引2","c"],
           ['ffdaf','fff二','dd三']
         ]
       },{
         'name':'用户',
         "data":[
           userName,
           userArea,
           userDate
         ]
       }];
     var fileBuf = node_xlsx.build(obj);
     fs.writeFile('usddfser.xlsx', fileBuf, 'binary',function callback(err){
         console.log(err);
     });
   }
 });
Example #28
0
File: run.js Project: ChardRi/lab
function save(file, data) {
    if (path.extname(file) === '.csv') {
        var str = '';
        for (var i = 0; i < data.length; i++) {
            var row = '';
            for (var j = 0; j < data[i].length; j++) {
                row += ',"' + data[i][j] + '"';
            }
            row = row.slice(1);
            str += row + '\n';
        }
        fs.writeFileSync(file, str, {
            encoding: 'utf8'
        });
    } else {
        var buffer = xlsx.build({worksheets: [
            {"name": path.basename(file), "data": data}
        ]});
        fs.writeFileSync(file, buffer);
    }
}
Example #29
0
function rowsToExcel(rows){
  var data =[];
  if(rows.length){
    var keys=[];
    for(let key in rows[0]){
      keys.push(key);
    }
    data.push(keys);
  }else{
    return ;
  }
  rows.forEach(function(row){
    var values=[];
    for(let i=0;i<data[0].length;i++){
      values.push(row[data[0][i]]);
    }
    data.push(values);
  });
  var buffer = xlsx.build([{name: "mySheetName", data: data}]);
  return buffer;
}
Example #30
0
    NetprojService.getAll(function (err, netprojs) {
      if (err) {
        console.log(err);
        netprojs = [];
      }

      var data = NetprojService.getDataForExcel(netprojs);

      var buffer = xlsx.build([{name: _tmpFileName, data: data}]);

      fs.writeFile(path.join(__dirname, "../../public/excel/", _tmpFileName), buffer, function (err) {
        if (err) console.log(err);
        res.download(path.join(__dirname, "../../public/excel/", _tmpFileName), "网络部项目.xlsx", function (err) {
          if (err) console.log(err);
          fse.remove(path.join(__dirname, "../../public/excel/", _tmpFileName), function (err) {
            if (err) console.log(err)
          });
        });
      });

    });