javascript - 如何将可读流转换为 excel 文件对象?
问题描述
我正在尝试从 API 获取一些 Excel 文件并对其进行解析,但是,我一直在阅读 ReadableStream。这是我获取的内容:
const fetchData = async () => {
const response = await fetch('https://cors-anywhere.herokuapp.com/http://ukrstat.gov.ua/operativ/operativ2013/fin/kp_reg/kp_reg_u/xls_u/kp_reg_u_2018.xlsx');
console.log(response);
};
fetchData();
我正在使用 React,所以很高兴有一些建议如何使用XLSX处理这些信息
解决方案
以下是我解决这个特定问题的方法:
const fetchData = async () => {
const response = await fetch('https://cors-anywhere.herokuapp.com/http://ukrstat.gov.ua/operativ/operativ2013/fin/kp_reg/kp_reg_u/xls_u/kp_reg_u_2018.xlsx');
return response;
};
const parseExcel = async () => {
const stream = await fetchData();
const arrayBuffer = await stream.arrayBuffer();
const data = new Uint8Array(arrayBuffer);
const arr = new Array();
for (let i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
const bstr = arr.join('');
const workbook = XLSX.read(bstr, { type: 'binary' });
const sheet = workbook.Sheets;
const sheetName = Object.keys(sheet)[0];
const json = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], { header: 1 });
console.log(json);
};
parseExcel();
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/xlsx.js"></script>
推荐阅读
- pandas - python - 如何在python中的另一个组上按组获得最小值?
- r - 国家标志在图表中显示不正确
- javascript - 有什么方法可以知道是否在 JavaScript 中的 div 元素内的某个位置按下了某个按钮?
- html - 如何删除html音频元素边框?
- java - 如何将默认构造函数输出存储在字符串中?
- zap - 基于 ZAP 表单的身份验证不起作用 - 如何通过直接在网页上提供用户名/密码来扫描网页
- postgresql - 我收到“docker:无效的参考格式”。在我的本地机器上
- javascript - 从 json 获取值到数据表时出错
- bash - 为 bash 脚本提供接受标志(如命令)的选项
- java - 将 JSON 转换为具有 Json 属性的 POJO 作为具有不同属性的 jsonObject