Hello! 欢迎来到小浪资源网!



前端导出Excel时,单元格缺失或样式错乱是什么原因?


avatar
huizai2013 2024-11-22 22

前端导出Excel时,单元格缺失或样式错乱是什么原因?

前端导出 excel 为何缺少单元格?

在开发项目时,常有下载模板或导出表单数据为 excel 格式的需求。虽然 xlsx 库能满足基本需求,但有些 excel 表的样式难以定制。于是便尝试自定义封装一个库。

封装思路是将 excel 与 table 关联,通过 new blob() 构造函数作为桥梁。示例代码如下:

<table border="1">   <colgroup>     <col width="100">     <col width="150">     <col width="200">   </colgroup>   <thead>     <th style="background-color: pink">姓名</th>     <th style="background-color: pink">年龄</th>     <th style="background-color: pink">职位</th>   </thead>   <tbody>     <tr>       <td>张三</td>       <td>28</td>       <td>工程师</td>     </tr>     <tr>       <td>李四</td>       <td>35</td>       <td>医生</td>     </tr>     <tr>       <td>王五</td>       <td>22</td>       <td>学生</td>     </tr>   </tbody> </table>  <script>   // 获取table元素   var tableElement = document.querySelector('table');    // 获取table元素的domString表示   var tableDomString = tableElement.outerHTML;   const blob = new Blob([tableDomString], { type: "application/vnd.ms-excel" });   // 创建一个 <a> 元素用于下载 Excel 文件   const a = document.createElement("a");   a.href = URL.createObjectURL(blob);   a.download = 'test2' + '.xlsx'; // 设置下载文件的名称   // 触发点击下载   a.click();   a.remove(); </script>

结果可以正常生成 excel 文件,但样式不像 excel 格式,无法新增行或列,样式会混乱。

立即学习前端免费学习笔记(深入)”;

为了解决这一问题,强烈推荐使用 exceljs 库。它具有以下特点:

  • 作为前端导出 excel 界的天花板
  • 样式定制简洁易用

相关阅读