1

我知道 XLSX.read(htmlStr) 将 html 字符串读取为工作簿。我想知道是否有办法将其作为工作表阅读。我有一个对象如下

        workboook = {
            sheets:[
                {
                    html: "<table style='width:100%'>
                            <tr>
                                <th>Firstname</th>
                                <th>Lastname</th>
                                <th>Age</th>
                            </tr>
                            <tr>
                                <td>Jill</td>
                                <td>Smith</td>
                                <td>50</td>
                         </tr>
                         <tr>
                                <td>Eve</td>
                                <td>Jackson</td>
                                <td>94</td>
                            </tr>
                        </table>",
                    sheetName: "Some Name"
                },
                {
                    html: "<table style='width:100%'>
                            <tr>
                                <th>Firstname</th>
                                <th>Lastname</th>
                                <th>Age</th>
                            </tr>
                            <tr>
                                <td>Jill</td>
                                <td>Smith</td>
                                <td>50</td>
                         </tr>
                         <tr>
                                <td>Eve</td>
                                <td>Jackson</td>
                                <td>94</td>
                            </tr>
                        </table>",
                    sheetName: "Some Name"
                }
            ]
        } 

我想将“表格”数组中的每个 html 转换为 s 工作表,并将所有这些工作集添加到工作簿中。任何帮助/建议都会非常棒。

我仍然可以像这样从工作簿中提取 Sheet 对象:

...
 let xlsxWorkbook = XLSX.utils.book_new();
workbook.sheets.forEach((sheet) => {

            let tempWorkbook = XLSX.read(sheet.html, {type: 'string'});
            let worksheet = tempWorkbook.Sheets.Sheet1;
            XLSX.utils.book_append_sheet(xlsxWorkbook, worksheet, sheet.sheetName);
        });

但这似乎更像是一种黑客行为。必须有更好的解决方案

4

0 回答 0