前端下载/导出的excel表定制化?

作者站长头像
站长
· 阅读数 19

背景:

日常工作中,经常会有下载excel模板和导出excel数据的需求。xlsx是由SheetJS开发的一个处理excel文件的npm库,但是同时会有下载、导出的excel表的样式比较粗糙的问题

比如下载模板

import * as XLSX from 'xlsx';

const handleDownloadTemplate = () => {
  let book = XLSX.utils.book_new();
  // 实例化一个Sheet
  let sheet = XLSX.utils.json_to_sheet(
    [
      {
       '姓名1111111199999': '',
       '年龄8888888': '',
       '身高': ''
      },
    ],
    {
      header: [
        '姓名',
        '年龄',
        '身高'
      ],
    },
  );
  // 将Sheet写入工作簿
  XLSX.utils.book_append_sheet(book, sheet, 'Sheet1');
  // 写入文件,直接触发浏览器的下载
  XLSX.writeFile(book, 'xxxx模板.xlsx');
}

下载出来的表格比较粗糙

前端下载/导出的excel表定制化?

主要有以下问题:

  1. 单元格的宽度太小,文字展示不全;
  2. 如果对下载的excel有定制化的一些样式需求,就不支持了。

所以,有没有什么好的方案:前端下载、导出的excel表可以定制化。

尝试:

目前没有找到更加好的方案。

回复
1个回答
avatar
test
2024-06-20

exceljs 是支持自定义样式的,#样式 - exceljs/README_zh.md at master · exceljs/exceljs

我也是看到别人推荐才改用的 👉 这一定是前端导出Excel界的天花板~


甚至可以配置底下单元格的规则校验,以及配置成下拉选择的形式。answer imageanswer image

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容