React|获取oss存储的文件,并转为json格式

使用axios通过oss的url获取.xlsx文件流,处理后得到json格式数据:

安装xlsx:

npm install xlsx

import axios from "axios";
import * as XLSX from "xlsx";

//#region xlsx(oss) to json
async function getFileStream(url) {
  const response = await axios.get(url, { responseType: "blob" });
  return response.data;
}

async function convertFileStreamToWorkbook(fileStream) {
  const reader = new FileReader();
  return new Promise((resolve, reject) => {
    reader.onload = (event) => {
      try {
        const workbook = XLSX.read(event.target.result, { type: "binary" });
        resolve(workbook);
      } catch (error) {
        reject(error);
      }
    };
    reader.onerror = (error) => {
      reject(error);
    };
    reader.readAsBinaryString(fileStream);
  });
}

async function convertWorkbookToJson(workbook) {
  const sheetName = workbook.SheetNames[0]; // 获取第一个工作表的名称
  const worksheet = workbook.Sheets[sheetName]; // 获取第一个工作表对象
  const jsonData = XLSX.utils.sheet_to_json(worksheet); // 将工作表对象转换为JSON对象
  return jsonData;
}

export async function xlsxToJson(OSSUrl) {
  const fileStream = await getFileStream(OSSUrl);
  const workbook = await convertFileStreamToWorkbook(fileStream);
  const jsonData = await convertWorkbookToJson(workbook);
  return jsonData;
}
//#endregion

使用:

    (async () => {
      const json = await xlsxToJson(
        "https://xxxxxxx.xlsx" // ossUrl
      );
      setAuthorDatas([...json]);
    })();

相关推荐

  1. React获取oss存储文件转为json格式

    2024-04-04 10:16:03       14 阅读
  2. json文件格式化

    2024-04-04 10:16:03       37 阅读
  3. json文件转换成excel格式文件

    2024-04-04 10:16:03       19 阅读
  4. 【代码】Android|获取存储权限创建、存储文件

    2024-04-04 10:16:03       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-04 10:16:03       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-04 10:16:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-04 10:16:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-04 10:16:03       18 阅读

热门阅读

  1. CV最新论文|4月1日 arXiv更新论文合集

    2024-04-04 10:16:03       16 阅读
  2. Spring和SpringBoot的区别

    2024-04-04 10:16:03       13 阅读
  3. Gin框架(3)

    2024-04-04 10:16:03       9 阅读
  4. Qt之QSoundEffect播放简单音效

    2024-04-04 10:16:03       11 阅读
  5. NLP学习路线指南总结

    2024-04-04 10:16:03       12 阅读
  6. 使用 XCTest 进行 iOS UI 自动化测试

    2024-04-04 10:16:03       11 阅读
  7. 每天学习一个Linux命令之tee

    2024-04-04 10:16:03       15 阅读
  8. 说明计算机视觉(CV)技术的优势和挑战

    2024-04-04 10:16:03       17 阅读
  9. Go-Gin-Example 第九部分 实现redis缓存

    2024-04-04 10:16:03       17 阅读
  10. 品深文司绿茶——传承千古的爱情佳话

    2024-04-04 10:16:03       15 阅读