XLSX returns 缓冲区中的奇怪字符 Object/Base 64

XLSX returns strange characters from Buffer Object/Base 64

我正在尝试读取已转换为 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 时,输出 returns 类似于:

'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ï

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

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