3

I am using 'exceljs' module in my Angular project to build an Excel file. Instead of exporting it as Excel file, I would first like to convert it to PDF and then download it as such.

I can successfully export and save this file to my computer:

    workbook.xlsx.writeBuffer().then((data) => {
        console.log(data); // Uint8Array
        console.log(data.buffer); // ArrayBuffer
        console.log(new Blob([data])); // Blob

        // code I use to export it as an Excel File
        const blob = new Blob([data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'});
        const test = FileSaver.saveAs(blob, 'test.xlsx');
    });

As written above, instead of an Excel file I would like to have it exported as a PDF file.

From the code you can see that 'exceljs' is giving me an Uint8Array stream of data, from which I can get out an ArrayBuffer, or I can convert it to a Blob.

I have tried using this without success:

workbook.xlsx.writeBuffer().then((data) => {
    const blob = new Blob([data], { type: 'application/pdf' });
    // or with 'application/octet-stream' type
    // const blob = new Blob([data], { type: 'application/octet-stream' });
    FileSaver.saveAs(blob, 'test.pdf');
});`

The PDF file gets exported, but it cannot be opened. I get an error like "The file is corrupted."

Thank you for all the help in advanced.

f.bele
  • 207
  • 2
  • 13

0 Answers0