web建站教程
     
  1. 首页
  2. 前端UI组件库
  3. AI项目和框架
  4. AIGC工具
  5. 百度echarts
  6. 地图大全
  7. 前端知识
  8. 更多
    vuejs
    js入门
    php入门
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站
    AI应用

vuejs用exceljs轻松解决excel导出表格出现的合并、居中等样式属性

2171 ℃

今天介绍ExcelJS的基本用法,主要介绍设置每列的宽度、合并、居中、标签等样式属性。代码如下:

<template>
  <div class="wrap">
    <div>
      <el-button type="primary" @click="exportExcel">导出excel</el-button>
    </div>
    <div>
      <el-table
        border
        :data="tableData"
        style="width: 100%"
      >
        <template v-for="(item, index) in tableHeader">
          <el-table-column :key="index" v-bind="item"> </el-table-column>
        </template>
      </el-table>
    </div>
  </div>
</template>
<script>
import ExcelJS from "exceljs";
import FileSaver from "file-saver";
export default {
  name: "exceljs-demo",
  data() {
    return {
      tableHeader: [
        {
          prop: "date",
          label: "日期"
        },
        {
          prop: "name",
          label: "姓名"
        },
        {
          prop: "address",
          label: "地址"
        }
      ],
      tableData: [
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1519 弄"
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1516 弄"
        },
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1518 弄"
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1517 弄"
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1519 弄"
        },
        {
          date: "2016-05-05",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1516 弄"
        }
      ]
    };
  },
  methods: {
    // 是否为空
    $isNull(val) {
      return (
        val === null || val === void 0 || val === "" || val.toString() === "NaN"
      );
    },
    async exportExcel() {
      const workbook = new ExcelJS.Workbook();
      // 创建带有红色标签颜色的工作表
      const sheet = workbook.addWorksheet("My Sheet", {
        properties: { tabColor: { argb: "FFC0000" } }
      });

      // 生成columns
      let columns = [];
      this.tableHeader.map(item => {
        columns.push({
          name: item.label
          // width: 30 // 这里设置宽度不起作用,详情请看table 下 列属性,里面没有width 属性
        });
      });

      //设置宽度
      sheet.getColumn("A").width = 15;
      sheet.getColumn("B").width = 15;
      sheet.getColumn("C").width = 35;

      //合并
      sheet.mergeCells("A2:A3");
	  
      // 表头 居中并设置边框getCell/头、getColumn列表
      let h1 = sheet.getColumn("A");
      let h2 = sheet.getColumn("B");
      let h3 = sheet.getColumn("C");
      let arr = [h1, h2, h3];
      arr.map(item => {
        // 居中
        item.alignment = { vertical: "middle", horizontal: "center" };
        // 边框
        item.border = {
          top: { style: "thin" },
          left: { style: "thin" },
          bottom: { style: "thin" },
          right: { style: "thin" }
        };
      });
      // 生成rows
      let rows = [];
      this.tableData.map(item => {
        let arr = [];
        this.tableHeader.map(sub => {
          arr.push(!this.$isNull(item[sub.prop]) ? item[sub.prop] : "");
        });
        rows.push(arr);
      });
      //数据表格位置
      sheet.addTable({
        name: "MyTestTable",
        ref: "A1", // 表格左上角的位置
        headerRow: true,
        totalsRow: false,
        style: {
          theme: "TableStyleLight1"
        },
        columns: columns,
        rows: rows
      });

      // 导出
      workbook.xlsx.writeBuffer().then(buffer => {
        FileSaver.saveAs(
          new Blob([buffer], { type: "application/octet-stream" }),
          `test.xlsx`
        );
      });
    }
  }
};
</script>

excel拆分单元格快捷键怎么用

如何利用PHPExcel类库建php将数据格式转为excel

vuejs导入excel(多个Sheet表全部解析)

vuejs前端做一个点击按钮下载excel文件模板功能

vuejs导入excel表格解析成JSON数据(日期变成数字)解决方法

标签: excel exceljs 合并 导出 属性

上面是“vuejs用exceljs轻松解决excel导出表格出现的合并、居中等样式属性”的全面内容,想了解更多关于 vuejs 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_2161.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 首页 > vuejs
Trae:新一代免费的AI编程工具

呱呱工具箱

一款免费的在线小工具,无需下载,打开即可使用!呱呱工具箱

在线育儿补贴计算器

快来看看你到底可以领到多少补贴!生活小工具
上一篇:
下一篇:
x 打工人ai神器