使用 jQuery 或 JavaScript 将 html 表格导出到多张 xlsx 文件而不是 xls

Export html tables to multiple sheets xlsx file not xls using jQuery or JavaScript

我需要将我网页上的 html 表导出到多张 excel 扩展名为 xlsx 的工作簿。

Whosebug 中有很多线程告诉我如何导出到 xls 文件,但我需要导出到 xlsx 文件

我需要使用 JQuery 或 javascript 来完成此操作。任何帮助将不胜感激。

注意:在不知道你的方法的情况下,因为你的问题的评论中提到的实施还没有在你的最后开始,所以很难理解你的代码结构。此示例仅导出一个 table,但您应该能够深入了解库文档以找出将不同 table 合并到单个文件中的可能方法。只需在带有 sheet js 的单个文件中搜索多个 sheet。实现您的逻辑,如果 运行 出现问题,请用问题更新问题。

您可以使用可用的 javascript 库来生成 xlsx 文件。 您需要在页面上添加以下脚本。这种方法的唯一缺点是有 4 个外部库,所以只在您需要的页面上加载它们。

<script src="https://unpkg.com/xlsx/dist/shim.min.js"></script>
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
<script src="https://unpkg.com/blob.js@1.0.1/Blob.js"></script>
<script src="https://unpkg.com/file-saver@1.3.3/FileSaver.js"></script>

用您的数据创建 table

  <table id="tableToExport">
    <tr>
      <th>Name</th>
      <th>Email</th>
      <th>Country</th>
    </tr>
    <tr>
      <td>John Doe</td>
      <td>john@mailserver.com</td>
      <td>USA</td>
    </tr>
    <tr>
      <td>Jane Doe</td>
      <td>jane@mailserver.com</td>
      <td>UK</td>
    </tr>
  </table>

在按钮或任何元素上添加事件侦听器以触发导出。

var btn = document.getElementById("createXLSX");
var fileName = "test";
var fileType = "xlsx";
btn.addEventListener("click", function() {
   var table = document.getElementById("tableToExport");
   var wb = XLSX.utils.table_to_book(table, {sheet: "Sheet JS"});
   return XLSX.writeFile(wb, null || fileName + "." + (fileType || "xlsx"));
});

查看 this codepen 以查看功能。