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的内容 - 掘金

相关推荐
herinspace28 分钟前
管家婆实用贴-如何分离和附加数据库
开发语言·前端·javascript·数据库·语音识别
这里不能睡觉2 小时前
js 实现 Blob、File、ArrayBuffer、base64、URL 之间互转
javascript
拉拉肥_King2 小时前
Ant Design Table 横向滚动条神秘消失?我是如何一步步找到真凶的
前端·javascript
吴声子夜歌2 小时前
Vue3——新语法
前端·javascript·vue.js
jiayong232 小时前
第 36 课:任务详情抽屉快捷改状态
开发语言·前端·javascript·vue.js·学习
FFF_634560233 小时前
通用 vue 页面 js 下载任何文件的方法
开发语言·前端·javascript
herinspace3 小时前
如何解决管家婆辉煌零售POS中显示的原价和售价不一致?
网络·人工智能·学习·excel·语音识别·零售
之歆3 小时前
Day03_HTML 列表、表格、表单完整指南(下)
android·javascript·html
李白的天不白4 小时前
读到数据为undefind是的几种情况
开发语言·javascript·ecmascript
MXN_小南学前端5 小时前
Vue3 + Spring Boot 工单系统实战:用户反馈和客服处理的完整闭环(提供gitHub仓库地址)
前端·javascript·spring boot·后端·开源·github