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

相关推荐
步行cgn1 小时前
Vue 事件修饰符详解
前端·javascript·vue.js
vvilkim1 小时前
Flutter 状态管理基础:深入理解 setState 和 InheritedWidget
前端·javascript·flutter
程序员小张丶1 小时前
基于React Native的HarmonyOS 5.0房产与装修应用开发
javascript·react native·react.js·房产·harmonyos5.0
中微子2 小时前
回调函数详解:C++开发者视角下的JavaScript异步艺术
javascript
Sun_light2 小时前
LeetCode 59.「螺旋矩阵」
javascript·算法·面试
Westrious2 小时前
【JS里的小函数】帮助你在全局作用域中创建和访问对象的函数
前端·javascript·node.js
水冗水孚2 小时前
使用nodejs的express框架实现大文件上传的功能,附完整前后端github代码
javascript·node.js·express
东方佑3 小时前
使用 FastMCP 实现 Word 文档与 JSON 数据互转的 Python 服务
python·json·word
不爱搬砖的码农4 小时前
使用 vscode 开发 uni-app 项目时如何解决 manifest.json 文件注释报错的问题
vscode·uni-app·json
Net蚂蚁代码6 小时前
Angular入门的环境准备步骤工作
前端·javascript·angular.js