JS前端转Excel,带样式

exportTable(selector, fileName) {
    let tableDom = document.querySelector(selector);
    let wb = XLSX.utils.table_to_book(tableDom);

    for (const key in wb.Sheets.Sheet1) {
      if (Object.prototype.toString.call(wb.Sheets.Sheet1[key]) === '[object Object]') {
        //给每个格子修改样式
        wb.Sheets.Sheet1[key].s = {
          //字体水平居中、垂直居中、自动换行、缩进
          alignment: {
            horizontal: 'center', //水平居中
            vertical: 'center',
            wrapText: 1,
            indent: 0
          },
          //大小
          font: {
            sz: 15,
          },
          border: {
            //单元格外侧框线
            top: {
              style: "thin",
            },
            bottom: {
              style: "thin",
            },
            left: {
              style: "thin",
            },
            right: {
              style: "thin",
            },
          }
        }
      }
      wb.Sheets.Sheet1['!cols'].push({wpx: 150});
    }

    let wbout = XLSX.write(wb, {
      bookType: "xlsx",
      bookSST: true,
      type: "array",
      cellStyles: true
    });
    try {
      saveAs(
        new Blob([wbout], {type: "application/octet-stream"}),
        (fileName || "数据导出-" + parseTime(new Date(), "{y}{m}{d}_{h}{i}{s}")) +
        ".xlsx"
      );
    } catch (e) {
    }
    return wbout;
  }

需要安装 xlsx-js-style 和 file-saver 插件,目前已经控制了字体的大小,单元格的大小,单元格的水平居中,比默认的好看多了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值