Estoy usando Sheetjs para editar un archivo existente de Excel con la macro de extensión xlsm habilitada. Funciona, pero después de descargar el archivo de salida, se eliminan todos los scripts de estilo, macro y vba. aquí está el código que estoy usando
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.2/xlsx.full.min.js" integrity="sha512-oCjkwxjURabnte5K4Zeoc+hZ/G5pQE7GI4DYl+0wl6WaJIkBjb9FvUIaMU3lOPoBMSRZZ7QrczpGQoBFAKKB1Q==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script> (async () => { const url = "{{ URL('/') }}/test.xlsm" const data = await (await fetch(url)).arrayBuffer(); /* data is an ArrayBuffer */ // const workbook = XLSX.read(data); try { const workbook = XLSX.read(data, { bookVBA: true, type:'binary' }); let worksheet = workbook.Sheets['Raw Data']; var desired_cell = worksheet['B8']; var desired_value = (desired_cell ? desired_cell.v : undefined); XLSX.utils.sheet_add_aoa(worksheet, [ ['NEW VALUE from NODE'] ], { origin: 'B8' }); XLSX.utils.sheet_add_aoa(worksheet, [ ['NEW VALUE from NODE'] ], { origin: 'B9' }); XLSX.writeFile(workbook, './out.xlsm', { bookVBA: true, type:'binary' }); console.log('Completed ...'); } catch (error) { console.log(error.message); console.log(error.stack); } })(); </script>