Тег ASCII ‘DC3’ отсутствует после загрузки файла с элементом.скачать

#node.js #express #download #xmlhttprequest #sheetjs

Вопрос:

У меня есть скрипт, который создает файл Excel с помощью SheetJS, и если файл просто сохранен в каталог, он работает нормально, но когда я загружаю этот файл из браузера с помощью element.download , я получаю ошибку поврежденного файла из Excel. При проверке обоих файлов с помощью npp я заметил, что в загруженном файле отсутствуют все теги DC3.

Содержимое файла Wokring: введите описание изображения здесь

Поврежденное содержимое файла: введите описание изображения здесь

Почему это происходит и как это исправить?

Листовой код:

 var wb = XLSX.utils.book_new()
var ws = XLSX.utils.json_to_sheet(data);
XLSX.utils.book_append_sheet(wb, ws, 'test');
XLSX.writeFile(wb, 'test.xlsx');
var excelData = fs.readFileSync('./test.xlsx', 'utf8')
res.send(excelData);
 

Код на стороне браузера:

 var xhr = new XMLHttpRequest();
xhr.open("POST", 'http://10.0.0.222:9999', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify(goodJSON)) 
var excel = xhr.response;
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:attachment/text,'   encodeURI(excel);
hiddenElement.target = '_blank';
hiddenElement.download = 'myFile.xlsx';
hiddenElement.click();
 

10.0.0.222:9999-это мое приложение NodeJS с кодом SheetJS