3

I don't know how to properly pose my question but I have code that takes HTML table data and puts it to excel but it starts it at position A1 and let's say I want to start at C3.

And being here can I import some xlsx with styling make a copy of it and populate it with this method?

var t = document.getElementsByTagName("table")[0];

    var wb1 = XLSX.utils.table_to_sheet(t);
    var wb2 = XLSX.utils.table_to_sheet(t);

    var wb = XLSX.utils.book_new();

    XLSX.utils.book_append_sheet(wb, wb1, "Sheet 1");
    XLSX.utils.book_append_sheet(wb, wb2, "Sheet 2");

    var wbout = XLSX.write(wb, {
        bookType: 'xlsx',
        bookSST: true,
        type: 'binary'
    });


    saveAs(new Blob([s2ab(wbout)], {
        type: "application/octet-stream"
    }), 'data.xlsx');


    function s2ab(s) {
        var buf = new ArrayBuffer(s.length);
        var view = new Uint8Array(buf);
        for (var i = 0; i < s.length; i++) view[i] = s.charCodeAt(i) & 0xFF;

        return buf;
    }    

}
<table>
 <tr>
  <td>Emil</td>
  <td>Tobias</td>
  <td>Linus</td>
 </tr>
 <tr>
  <td>26</td>
  <td>24</td>
  <td>20</td>
  </tr>
</table>
<button type="button" onclick="downloadXlsx()">Excel download</button>
Jan Kees
  • 185
  • 11
stud1234
  • 65
  • 7
  • Styling is [supported](https://github.com/SheetJS/sheetjs/issues/2380#issuecomment-917497434) in pro version. – the Hutt Jan 18 '22 at 09:48

1 Answers1

3

It's very easy.

Change this...

var wb1 = XLSX.utils.table_to_sheet(t);
var wb2 = XLSX.utils.table_to_sheet(t);

...to this.

var wb1 = XLSX.utils.table_to_sheet(t, {origin: 'C3'});
var wb2 = XLSX.utils.table_to_sheet(t, {origin: 'C3'});
Rok Benko
  • 14,265
  • 2
  • 24
  • 49