node 导入 导出 下载excel

举报
拿我格子衫来 发表于 2022/03/17 22:29:20 2022/03/17
【摘要】 // 导入excelrouter.get('/uploadExcel', function (req, res) { let data = [ { name: '第一个sheet', data: [['字段1', '字段2', '字段3'], ['1', 'Michael', '99'], ['2', 'To...

  
  1. // 导入excel
  2. router.get('/uploadExcel', function (req, res) {
  3. let data = [
  4. {
  5. name: '第一个sheet',
  6. data: [['字段1', '字段2', '字段3'], ['1', 'Michael', '99'], ['2', 'Tom', '98']]
  7. },
  8. {
  9. name: '第二个sheet',
  10. data: [['A1', 'B1'], ['A2', 'B2']]
  11. }
  12. ]
  13. // 将格式化的数据写如excel文件
  14. let buffer = xlsx.build(data)
  15. fs.writeFile('./resut.xls', buffer, function (err) {
  16. if (err) {
  17. console.log(err, '保存excel出错')
  18. } else {
  19. console.log('写入excel成功!!!')
  20. // 读取excel
  21. var obj = xlsx.parse('./' + 'resut.xls')
  22. console.log('读取excel成功' + JSON.stringify(obj))
  23. // 下载excel表
  24. res.setHeader('Content-Type', 'application/vnd.openxmlformats')
  25. res.setHeader('Content-Disposition', 'attachment; filename=' + 'export.xlsx')
  26. res.end(buffer, 'binary')
  27. }
  28. })
  29. })

使用

node-xlsx  包的介绍点击此处 包进行excel的导入导出解析 支出
 

主要用到这个包的二个api:

xlsx.build():将格式化的数据转化为可保存excel的buffer流,参数为一个数组

xlsx.parse(): 将一个excel中的数据转化为数组

使用


  
  1. res.setHeader('Content-Type', 'application/vnd.openxmlformats')
  2. res.setHeader('Content-Disposition', 'attachment; filename=' + 'export.xlsx')
  3. res.end(buffer, 'binary')

这三行代码是设置接口response的header  访问接口直接下载一个叫做export的excel文件

 

总体上node导入导出excel还是比较简单的,麻烦的在于数据的封装,以及一列一列的解析,判断,要知道用户在excel有可能填写了很多不规范的数据,这就需要我们的程序做很多的检查.规范人们的excel的导入模板

 

谢谢阅读.如果觉得对你有帮助请记得点赞或收藏.欢迎留言讨论.你的支持是我出产优秀博客的动力.

文章来源: fizzz.blog.csdn.net,作者:拿我格子衫来,版权归原作者所有,如需转载,请联系作者。

原文链接:fizzz.blog.csdn.net/article/details/85045713

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。