nodejs用xlsx导出excel表

简介

本文介绍用 Node.js 中的依赖库来处理 Excel 文件,主要利用js-xlsx库来处理 Excel 文件。

1.安装依赖

npm install xlsx

2.导入xlsx库

const Excel = require ('xlsx')

3.查询所需导出的数据

栗子:

const users = await this._User.findAll({
      attributes:['firstName', 'lastName', 'email']
    })

4.将数据转成Excel表横坐标展示的

假如数据的类型是json,如下所示:

let ws = Excel.utils.json_to_sheet(users)//这里的users就是数据

数据类型是数组的话,如下所示:

let ws = Excel.utils.aoa_to_sheet(users)

我这里是第一种✌️

5.创建表格

let wb = Excel.utils.book_new()

6.数据装载到工作薄上

 Excel.utils.book_append_sheet(wb, ws, 'users用户信息')//最后那个是工作薄表的命名

7.最后就是采用文件流的方式相应的设置

let buf = Excel.write(wb, {
      type: 'buffer',
      bookType: 'xlsx'
    }) 

8.设置文件名之类的

let filename = 'users.xlsx'
    ctx.set('Content-disposition', 'attachment; filename=' + filename);
    ctx.type = "xlsx"
    ctx.body = buf
    return buf

9.好啦可以试试 应该就成功啦

9.想要中文表头

   下面直接粘贴源码吧!
 const fields = [ 'firstName', 'lastName', 'email', 'describe.introduce', 'describe.age']
   const titles = {
    firstName: '姓',
    lastName: '名',
    email: '邮件',
    'describe.introduce': '介绍',
    'describe.age': '年龄'
  }
   const ws = Excel.utils.json_to_sheet(
    users, 
      { 
          header: fields
      }
  )
  const range = Excel.utils.decode_range(ws['!ref'])
  for(let c = range.s.c; c <= range.e.c; c++) {
    const header = Excel.utils.encode_col(c) + '1'
    ws[header].v = titles[ ws[header].v ]
  }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值