eggjs xlsx文件上传并读取内容

安装组件

cnpm i xlsx --save

config.default.js 配置

config.multipart = {
	fileSize: '100mb',
	mode: 'file',
	whitelist() {
		return true;
	},
};

注意:config.multipart.whitelist 设置上传文件格式不限制,如果要限制,请移除config.multipart.whitelist 配置项或自行添加文件后缀

controller.js 代码

引入
const xlsx = require('xlsx');
const fs = require('mz/fs');
async importOrg() {

    let file;
    try {

      file = this.ctx.request.files[0];
      const list = new Array(0);

      const workbook = xlsx.readFile(file.filepath);
      for (const sheet in workbook.Sheets) {
        if (workbook.Sheets.hasOwnProperty(sheet)) {
         // 数据直接转成json格式 
          list.push(xlsx.utils.sheet_to_json(workbook.Sheets[sheet]));
        }
      }

      this.ctx.body = new Result(templist);
    } catch (error) {
      this.ctx.logger.error(error);
      if (error.classtype === 'BusError') {
        this.ctx.body = new Result(null, false, error.message, error.code);
        return;
      }
      this.ctx.body = new Result(null, false, '未知错误', 10000);
    } finally {
      if (file) {
        await fs.unlink(file.filepath);
      }
    }
  }

接下来更精彩,请勿走开(以下是私事,不喜欢别往下看了)

好用的HTTP模拟请求工具

市面上有很多HTTP模拟请求工具,有yapi,有ApiPost,好不好用在此不做评价。这里推荐使用BB-API,功能全面,免费使用、资源无限制,自动生成接口文档,界面简洁大气。支持局域网部署,打造属于你、公司的HTTP 协议管理工具。
官网地址http://yun-api.com/

完毕

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值