Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

122
Views
Simple read and write in angular SheetJs not retaining style and macros of xlsm file

I have an xlsm file in assets folder, which I need to reading and returning as a download file. I am able to read the file.

The following code, which basically downloads the blob as a file, it retains the macros and styling.

this.http.get(..., {responseType: 'blob' as 'json'}).subscribe((response:any)=>{
    let dataType = response.type;
    let binaryData = [];
    binaryData.push(response);
    let downloadLink = document.createElement('a');
    downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, {type: dataType}));
    if (this.fileName)
        downloadLink.setAttribute('download', this.fileName);
    document.body.appendChild(downloadLink);
    downloadLink.click();
});

However, I need to modify some data, and I am using SheetJs(xlsx) to modify it, but it is not retaining the macros and styling.

The following code uses xlsx to simply read and write it to a file and it is still losing macros and styling, only retaining the data.

this.http.get(..., {responseType: 'blob' as 'json'}).subscribe((response:any)=>{
    const reader: FileReader = new FileReader();
    reader.onload = (e: any) => {
        const bstr: string = e.target.result;
        const wb: XLSX.WorkBook = XLSX.read(bstr, {
            type: 'binary',
            bookVBA :true,
            cellStyles:true,
            cellHTML:true });
        XLSX.writeFile(wb, this.fileName,{
            type: 'binary',
            bookVBA:true,
            bookType: 'xlsm',
            cellStyles:true,
            bookSST:true,
        });
    };
    reader.readAsBinaryString(response);
});

even after setting bookVBA and cellStyles to true isn't resolving it.

I am using the latest version of SheetJs

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!