Я думаю, что в настоящее время exeljs
не подходит для работы с xlsm
файлами.Более надежный пакет для этого случая: xlsx .
Вот небольшой фрагмент кода, который продемонстрирует чтение существующего файла xlsm
, добавление в него дополнительных данных и записьновый xlsm
файл.Вы можете проверить это в среде NodeJS.
Обратите внимание, что при работе с файлами xlsm
вы передаете опцию bookVBA: true
методу readFile
, который по умолчанию равен false
.Подробнее см. параметры синтаксического анализа .
const XLSX = require('xlsx');
try {
const workbook = XLSX.readFile('./test.xlsm', { bookVBA: true });
let worksheet = workbook.Sheets['Sheet1'];
XLSX.utils.sheet_add_aoa(worksheet, [
['text in A1', 'text in B1', 5000],
['text in A2', 'text in B2', 'text in C2'],
[null, new Date(), 'text in C3', 'text in D3']
]);
XLSX.writeFile(workbook, './output.xlsm');
console.log('Completed ...');
} catch (error) {
console.log(error.message);
console.log(error.stack);
}
Подробнее см. поддерживаемые выходные форматы .