Я опубликовал это как проблему на node.js github . @ Hakerh400 предоставил хорошее описание того, что там происходит, но вкратце, в файловой системе Windows NTFS есть нечто, называемое ADS (альтернативные потоки данных), которое отслеживает, какие файлы загружаются из inte rnet, чтобы вызвать проблемы безопасности. , Подробнее об этом можно прочитать в комментарии @ Hakerh400.
Обходной путь - добавить это Zone.Identifier
ADS в файл после завершения загрузки, используя следующий пример:
http.get(url, response => {
let file = fs.createWriteStream('file.xls');
let stream = response.pipe(file);
fs.writeFileSync(
'file.xls:Zone.Identifier',
`[ZoneTransfer]\r\nZoneId=3\r\nHostUrl=${url}`,
);
})
Примечание. Это временное решение позволяет без проблем открыть файл Excel в «Защищенном представлении». Однако если вы нажмете «Включить редактирование» в приглашении безопасности в Excel, ошибка «Ошибка файла: данные могут быть потеряны» все равно появится (Excel 2019). Тем не менее, нет реальной потери данных с точки зрения листов / данных в ячейках.
Я надеюсь, что этот ответ поможет любому, кто сталкивается с чем-либо подобным.