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,
部分,那么缓冲区应该能够正确解析您的内容。
我正在尝试读取已转换为 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,
部分,那么缓冲区应该能够正确解析您的内容。