vue 导出Excel表格 更改样式

文件导出一般分为两种类型

(仅限于我所在项目中应用)
1.第一种以文件流的形式导出
2.第二种以参数导出

我们今天分享以vue+element UI 框架table表格勾选数据导出文件


  <el-button
            type="primary"
            icon="el-icon-download"
            @click="handleExportData(diskCode)"
            >导出
  </el-button>

  <el-table
      :data="tableData"
      style="width: 100%">
        <el-table-column type="selection" width="55"> </el-table-column>
      <el-table-column
        prop="date"
        label="日期"
        width="180">
      </el-table-column>
      <el-table-column
        prop="name"
        label="姓名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="address"
        label="地址">
      </el-table-column>
    </el-table>

这里我们用table表格,勾选数据批量导出表格

在这里插入图片描述

使用插件

npm install xlsx-js-style

引入

import XLSXS from 'xlsx-js-style';

完整代码

   // 导出
    handleExportData(data) {
      // let thisPage = this;
      let diskCodedata = data.join(",");
      console.log(diskCodedata, "diskCodedata");
      this.$confirm("确认导出数据?", "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(function () {
          axios({
            method: "get",
            params: {
              diskCode: diskCodedata,
            },
            url: process.env.VUE_APP_BASE_API + "/disk/manager/getExcelData",
            headers: { Authorization: "Bearer " + getToken() },
          }).then((res) => {
            if (res) {
              console.log("res.data", res.data);
              let arr = res.data.data.map((item) => {

              //要打印的数据类型(这些数据是我自己的)

                return {
                  编号: item.label,
                  时间: item.createTime,
                  格式包名称: item.fileName,
                  文件路径: item.filePath,
                  状态: item.statusName,
                };
              });
              console.log("arr", arr);

              let sheet = XLSX.utils.json_to_sheet(arr);
              let book = XLSX.utils.book_new();
              // // 设置列宽,有些文件内容很长,这里设置想要的宽度
              const cols = [
                { wch: 30 },
                { wch: 30 },
                { wch: 40 },
                { wch: 20 },
                { wch: 10 },
              ];
              sheet["!cols"] = cols; // 将cols添加到sheet中
              // sheet1表示要导出的分区名字
              XLSX.utils.book_append_sheet(book, sheet, "sheet1");
              console.log("book", book);
              // 可以修改成其它名字
              XLSX.writeFile(book, `导出内容${new Date().getTime()}.xls`);
              return;
            }
          });
        })
        .catch(function () {});
    },

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值