XLSX возвращает странные символы из Buffer Object / Base 64 - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь прочитать файл Excel, который был преобразован в строку base-64. Файл был изначально 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ï

1 Ответ

1 голос
/ 23 апреля 2020

Ваш file - это не просто строка base64. В вашем repl.it у вас есть дополнительные фрагменты данных до содержимого base64, так что это интерпретируется как нежелательное содержимое base64.

Если вы удалите часть data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,, тогда буфер сможет чтобы правильно проанализировать ваш контент.

...