如何读取HTML字符串作为工作表?

时间:2019-09-13 17:20:30

标签: javascript excel sheetjs

我知道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);
        });

但这似乎更像是一种hack。有更好的解决方案

0 个答案:

没有答案