javascript - XLSX 从缓冲区对象/Base 64 返回奇怪的字符

标签 javascript node.js xlsx

我正在尝试读取已转换为 Base-64 字符串的 Excel 文件。该文件在转换之前最初是一个 react-dropzone 文件。不幸的是,当使用 XLSX 解析数据时,文件返回异常字符。下面是我的代码:

const XLSX = require("xlsx")

const file = "base64String"

const buffer = Buffer.from(file, 'base64')
const workbook = XLSX.read(buffer, { type: 'buffer' })

const sheetNamesList = workbook.SheetNames
// parse excel data to json
const excelData = XLSX.utils.sheet_to_json(workbook.Sheets[sheetNamesList[0]])

记录 excelData 时,输出返回如下内容:

'u«ZjeÆ­ÿ¾wh¥éñWè®f­³ê\u001f~\'\u001ev.éí²ÞiÛ!yëfÈ^zÖÚ±î¸PK\u0003\u0004\u0014\u0000\u0006\u0000\b\u0000
\u0000\u0000!\u0000bîËNÃ0\u0010E÷HüCä-Jܲ@\b5íÇ\u0012*Q>ÀÄƪc[û\u0010B¡\u0015j7±\u0012ÏÜ{2ñÍh²nm¶Æ»R\fÈÀU^\
u001b7/ÅÇì%¿\u0017\u0019rZYï

最佳答案

您的文件不仅仅是一个base64字符串。在您的 repl.it 中,您在 Base64 内容之前还有其他数据片段,因此这些数据会被解释为垃圾 Base64 内容。

如果您去掉 data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64, 部分,那么缓冲区应该能够正确解析您的内容。

关于javascript - XLSX 从缓冲区对象/Base 64 返回奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61378761/

相关文章:

python - openpyxl xlsx 文件单元格值 = 无

javascript - 将 Excel 工作表转换为 JSON 并将数据发送到 SharePoint 列表——改为获取空对象

将 write.xlsx 与使用 'dplyr' 函数创建的对象一起使用时出现 R 错误

javascript - 正则表达式替换 HTML 标签

javascript - JavaScript 快速排序中的无限递归?

javascript - 像 Postman 一样发送 jquery 请求

node.js - 清理node_modules文件夹以进行部署和运输

mysql - Nodejs JOIN 查询 : formatting JSON output

javascript - JSON.parse 返回 [Object object] 寻找访问对象的属性

mysql - 自引用多对多关系类型ORM