Search code examples
javascriptsheetjsjs-xlsx

How to create more than one XLSX sheet from HTML table in js-xlsx (sheetjs)?


I am using sheetjs to convert some of my table data into xlsx format (and download later).

However, how can I add more than one sheet into the xlsx?

The current code is:

var elt = document.getElementById('table_instance');
var wb = XLSX.utils.table_to_book(elt, {sheet:"Sheet 1"});

What I'm looking for is:

var elt = document.getElementById('table_instance');
var elt2 = document.getElementById('table_instance2');
var wb = XLSX.utils.table_to_book(
    [elt, {sheet:"Sheet 1"}
    [elt2, {sheet:"Sheet 2"}
);

Thanks


Solution

  • Step: 1 Create two separate sheets

    var elt = document.getElementById('table_instance');
    var elt2 = document.getElementById('table_instance2');
    
    var ws = XLSX.utils.table_to_sheet(elt);
    var ws2 = XLSX.utils.table_to_sheet(elt2);
    

    Step: 2 Create an empty workbook

    var wb = XLSX.utils.book_new();
    

    Step: 3 Append the sheets to the workbook

    XLSX.utils.book_append_sheet(wb, ws, "Sheet 1");
    XLSX.utils.book_append_sheet(wb, ws2, "Sheet 2");
    

    Working fiddle