纯前端导出,设置导出xlsx文件样式xlsx-js-style

设置导出的表格样式,xlsx-js-style!真的绝绝子!

1.下载xlsx-js-style依赖

npm install xlsx-js-style

2.在main.js中挂载到vue原型上,方便使用

import XLSX from 'xlsx-js-style'
Vue.prototype.$xlsx = XLSX

 3.页面具体写法

exportExcel() {
      const th = [
        [
          "序号",
          "工号",
          "姓名",
          "备注",
        ],
      ];
      let newData = [];
      this.listData.map((item, index) => {
        newData.push([
          index + 1,
          item.jobNumber,
          item.name,
          item.remark
        ]);
      });

      let excelData = th.concat(newData); //数组的拼接
      let workbook = this.$xlsx.utils.book_new(); // 工作簿
      let worksheet = this.$xlsx.utils.aoa_to_sheet(excelData); // 数据表
      //以下是样式设置,样式设置放在组织完数据之后,xlsx-js-style的核心API就是SheetJS的
      //样式的设置可以参考相关文档 贴在文章末尾第二个链接
      //修改列宽cols 行宽就用rows 总共11列
      worksheet["!cols"] = [
        {
          width: 14,
        },     
        {
          width: 14,
        },
        {
          width: 14,
        },
        {
          width: 20,
        }
      ];
      // 修改行高 这里我只修改了第一行
      worksheet["!rows"] = new Array(this.listData.length + 1).fill({
        hpx: 24,
      });
      //合并第一行单元格 s和e指范围即第一行 第一列到第十一列
      // worksheet["!merges"] = [{ s: { r: 0, c: 0 }, e: { r: 0, c: 10 } }];
      Object.keys(worksheet).forEach((key) => {
        // 非!开头的属性都是单元格
        // excelData.length是我表格的长度也就是总行数
        //设置从第二行开始的数据样式
        for (let i = 1; i <= excelData.length; i++) {
          //用正则表达式判断是否是某一行
          if (key.replace(/[^0-9]/gi, "") == i) {
            worksheet[key].s = {
              //设置字体
              font: {
                name: "Arial",
                sz: 12,
                bold: false,
                color: { rgb: "000000" },
              },
              //设置居中
              alignment: {
                horizontal: "center",
                vertical: "center",
                wrapText: true,
              },
              //设置边框
              border: {
                top: { style: "thin" },
                right: { style: "thin" },
                bottom: { style: "thin" },
                left: { style: "thin" },
              },
            };
          }
        }
     
      });
      this.$xlsx.utils.book_append_sheet(workbook, worksheet, "Sheet1");
      this.$xlsx.writeFile(workbook, "a.xlsx"); //表格名称
    },

参考:前端根据后端返回数据导出指定样式的表格(xlsx-js-style)_前端excel导出指定格式-CSDN博客

相关推荐

  1. 前端导出设置导出xlsx文件样式xlsx-js-style

    2024-01-16 10:48:01       63 阅读
  2. vue:功能【xlsx前端导出Excel

    2024-01-16 10:48:01       45 阅读
  3. 前端实现导出xlsx功能

    2024-01-16 10:48:01       40 阅读
  4. js批量导入获取xlsx文件数据

    2024-01-16 10:48:01       62 阅读
  5. Vue 导出前端数据报表为xlsx文件

    2024-01-16 10:48:01       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-16 10:48:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-16 10:48:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-16 10:48:01       82 阅读
  4. Python语言-面向对象

    2024-01-16 10:48:01       91 阅读

热门阅读

  1. C++学习笔记(二十二)

    2024-01-16 10:48:01       39 阅读
  2. T527Android13关机时黑屏无提示问题

    2024-01-16 10:48:01       55 阅读
  3. Android 13 关闭相册的编辑功能

    2024-01-16 10:48:01       56 阅读
  4. 一个SqlSugar实际案例

    2024-01-16 10:48:01       48 阅读
  5. 设置 SSH 通过密钥登录

    2024-01-16 10:48:01       53 阅读