您的当前位置:首页nodejs导出excel表格

nodejs导出excel表格

2024-12-13 来源:哗拓教育

教师改好学生的成绩之后可以开始统计学生的表格

前言
  • 网上查看nodejs下导出excel表格大多两种方法:node-xlsx和excel-export,我采用的是excel-export方法。
excel-export使用方法
  • 首先是安装excel-export
    npm install excel-export
  • 安装好之后就可以在index.js里面使用
  • 首先需要从数据库中获取学生的学号,姓名,成绩等信息,将其存入数组中,并通过回掉函数传到路由那边进行处理
    exports.exportExcel = function(data,cb) {
      Student.find({})
        .exec(function (err,doc) {
            for(var i = 0;i < doc.length; i++) {
              questionList.push(doc[i].toObject());
            }
            cb(true,questionList);
        });
    }
  • 接着是在index.js进行处理
    conf.cols 表示表格每一列应该是什么内容,caption用来设置首行各单元格内容,type设置的是每一列的数据类型,
    conf.cols = [{
      caption:'学号',
      type:'string',
    },
      {
        caption:'姓名',
        type:'string'

      }, {
        caption:'成绩',
        type:'string'
      }];

将从数据库获取到的信息放到每一行中,rows 赋值的是每一行的数据,每个数据都要与所在列所设置的数据格式一致,否则会报错,生成后的表格该单元格会显示NaN。

    for(var i=0; i<data.length;i++) {
        var buffer = [data[i].stuId, data[i].stuName, data[i].grade];
        console.log(buffer);
        temp.push(buffer);
    }
    conf.rows=temp;

设置导出表格的文件名并导出excel表格

      var result = nodeExcel.execute(conf);
      var random = Math.floor(Math.random()*10000+0);//用来保证生成不同的文件名
      var uploadDir = './public/upload/';
      var filePath = uploadDir + filename + random + ".xlsx";  //文件名
      fs.writeFile(filePath, result, 'binary',function(err){
        if(err){
          console.log(err);
        }
      });

参考网址:

显示全文