繁体   English   中英

如何从 js-xlsx (sheetjs) 中的 HTML 表创建多个 XLSX 表?

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

我正在使用sheetjs将我的一些表格数据转换为 xlsx 格式(稍后下载)。

但是,如何在 xlsx 中添加多于一张纸?

目前的代码是:

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

我正在寻找的是:

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"}
);

谢谢

有一个table_to_sheet实用程序函数,它返回一个可以插入到工作簿中的工作表对象。

下面的示例使用一个全新的工作簿显示了这一点,其中包含来自两个不同表格的两张工作表:

 // html const tbl1 = document.getElementById("test1"); const tbl2 = document.getElementById("test2"); // new workbook - could be some existing book as well let wb = XLSX.utils.book_new(); // table_to_sheet for different sheets from html table let ws1 = XLSX.utils.table_to_sheet(tbl1); let ws2 = XLSX.utils.table_to_sheet(tbl2); // ... etc // add sheets to workbook // sheet names are your choice XLSX.utils.book_append_sheet(wb, ws1, "Sheet1"); XLSX.utils.book_append_sheet(wb, ws2, "Sheet2"); // test persisted in sheet objects const test1 = XLSX.utils.sheet_to_json(wb.Sheets["Sheet1"], {header: 1}); const test2 = XLSX.utils.sheet_to_json(wb.Sheets["Sheet2"], {header: 1}); console.log(`Sheet1: ${JSON.stringify(test1)}`); console.log(`Sheet2: ${JSON.stringify(test2)}`);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.0/xlsx.min.js"></script> <table id="test1"> <tr><td>a1</td><td>b1</td><td>c1</td></tr> <tr><td>d1</td><td>e1</td><td>f1</td></tr> <tr><td>g1</td><td>h1</td><td>i1</td></tr> </table> <table id="test2"> <tr><td>a2</td><td>b2</td><td>c2</td></tr> <tr><td>d2</td><td>e2</td><td>f2</td></tr> <tr><td>g2</td><td>h2</td><td>i2</td></tr> </table>

步骤: 1创建两个单独的工作表

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);

步骤:2创建一个空工作簿

var wb = XLSX.utils.book_new();

步骤:3将工作表附加到工作簿

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

工作小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM