js 下载url返回的excel数据,并解析为json

XLSX GitHub地址:https://github.com/SheetJS/sheetjs/blob/github/dist/xlsx.full.min.js

需要先引入:XLSX.full.min.js

javascript 复制代码
// 下载文件的请求
fetch(downloadFileUrl).then(response => {
  return rsp.blob()
}).then(data => {
  let reader = new FileReader()
  // reader.readAsDataURL(blob)
  reader.readAsArrayBuffer(blob)
  reader.onload = (e) => {
    console.log('e:都数据流返回的对象:', e)
    let filedata = e.target.result // 文件数据
    // excel都数据流解析数据
    let workbook = XLSX.read(btoa(fixdata(filedata)), {type: 'base64'})
    console.log('读文件后:', workbook)
    // 需要解析第几个Sheet页?
  	let sheet = workbook.Sheets[workbook.SheetNames[0]]
    // sheet解析为json array
    let jsonArray = XLSX.utils.sheet_to_json(sheet)
    console.log('excel解析后的数据:', jsonArray)

    // do domething 解析后的数据jsonArray如何处理
  }
})


// 文件流转 base64
function fixdata(data) {
  var o = '',
    l = 0,
    w = 10240;
  for (; l < data.byteLength / w; ++l)
    o += String.fromCharCode.apply(
      null,
      new Uint8Array(data.slice(l * w, l * w + w))
    );
  o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));
  return o;
}

参考链接:
使用XLSX来解析Excel的内容 - 掘金

相关推荐
ct9785 分钟前
vue2 + vue3差异点
前端·javascript·vue.js
Delicate40 分钟前
揭开JS深拷贝的底裤:从递归到循环引用的终极解法
javascript
创业之路&下一个五年1 小时前
mvvm中v和vm关系,vm中v和m的关系?
java·开发语言·javascript
一天 24h2 小时前
Vue3父子组件传值:从零到精通
前端·javascript·vue.js·pycharm·npm·学习方法
大家的林语冰2 小时前
CSS 新函数上市,一行代码让文本自动变色,无需 JS 也能符合 W3C 无障碍对比度标准
前端·javascript·css
爱勇宝2 小时前
前端工程师的下一站:不是失业,而是 AI Engineer
前端·javascript·架构
我命由我123452 小时前
Excel - Excel 单元格格式同时设置日期时间
运维·学习·职场和发展·excel·求职招聘·职场发展·学习方法
小雨下雨的雨2 小时前
电池电量检测工具 - 鸿蒙PC用Electron框架技术实现详解
前端·javascript·华为·electron·鸿蒙·鸿蒙系统
砍材农夫2 小时前
物联网实战:Spring Boot MQTT | 模拟器Paho客户端拆解核心点
java·javascript·网络·spring boot·后端·物联网
小李云雾2 小时前
Vue Router 从入门到精通:路由核心知识点全解析
前端·javascript·vue.js