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

相关推荐
linux_cfan6 小时前
17 · 引擎适配器全景:HLS/DASH/Vimeo/Mux/Cast
前端·javascript·音视频
何何____8 小时前
Vue 生命周期详解
前端·javascript
默_笙9 小时前
💫 闭包是个背包:拆解小米前端面试题里的三道"闭包陷阱"
前端·javascript·面试
babe小鑫11 小时前
信息与计算科学专业应届生面试 怎么证明自己能解决业务问题
学习·r语言·excel
尾善爱看海12 小时前
《JavaScript 数组操作全攻略:12 类 API + 30 个实战场景 + 20 个避坑指南》
前端·javascript·面试
OpsEye12 小时前
为什么你的 Agent 莫名烧钱?聊聊循环调用的兜底方案
javascript·ai编程
linux_cfan13 小时前
16 · `custom-media-element`:属性拦截与转发
前端·javascript·音视频
右耳朵猫AI13 小时前
Web前端周刊2026W38 | React 19.3 发布、StyleX 深潜、jsdom 30.1 提速
前端·javascript·react.js·typescript·node.js
落魄大学生之流水线上谋生计13 小时前
GreenLife Carbon · OpenHarmony 智慧低碳生态平台
javascript
福兮说14 小时前
用 IndexedDB 存用户的文件,我踩过的五个坑
前端·javascript