#node.js #express #download #xmlhttprequest #sheetjs
Вопрос:
У меня есть скрипт, который создает файл Excel с помощью SheetJS, и если файл просто сохранен в каталог, он работает нормально, но когда я загружаю этот файл из браузера с помощью element.download
, я получаю ошибку поврежденного файла из Excel. При проверке обоих файлов с помощью npp я заметил, что в загруженном файле отсутствуют все теги DC3.
Поврежденное содержимое файла:
Почему это происходит и как это исправить?
Листовой код:
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