Как написать в файл.xlsm, используя пакет xlsx npm, не теряя своего стиля
Я хочу, чтобы значение было записано в тот же файл, который я читаю (т. Е..Xlsm (книга с поддержкой макросов), используя пакет xlsx npm без потери стиля листа (т. Е. Всплывающая подсказка / images / border / alignment и т. Д., И т. Д.)
Я искал в интернете почти 5 часов, чтобы найти примеры пакетов xlsx с функциями записи, но не повезло. Объяснение / примеры в https://www.npmjs.com/package/xlsx не достаточно ясны или не подходят для такого начинающего, как я и многие другие.
Ниже приведен фрагмент кода, который я использую для написания:
if(typeof require !== 'undefined') XLSX = require('C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\xlsx');
var workbook = XLSX.readFile('xlsm_File');
var first_sheet_name = workbook.SheetNames[0];
var address_of_cell = 'D5';
var worksheet = workbook.Sheets[first_sheet_name];
desired_cell = worksheet[address_of_cell].v;
//desired_value = (desired_cell ? desired_cell.v : undefined);
worksheet[address_of_cell].v = 'NEW VALUE from NODE';
XLSX.writeFile(workbook, 'xlsm_File');
С приведенным выше кодом, я сталкиваюсь со следующими проблемами:
- Стиль листа потерян (Пример: теперь всплывающая подсказка отображается как текстовое поле с константой. Изображения, которые были доступны ранее, теряются после записи. Формат границ / ячеек всего листа Excel теряется после того, как новое значение было помещено в конкретную ячейку)
- На самом деле лист Excel поддерживает макросы (файл.xlsm). Итак, нужно ли нам включить содержимое макроса, а затем записать значение в соответствующую ячейку. Это решило бы эти проблемы? Если да, как это делается?
- Кроме того, как выбрать значение из раскрывающегося списка значений соответствующей ячейки (также есть несколько ячеек со значениями раскрывающегося списка)?
Прошу вас помочь с вышеуказанными вопросами, так как это было бы более полезно для широкой аудитории.
Заранее спасибо!