首页 > 其他 > 详细

前端实现 EXCEL表导出

时间:2021-04-13 17:16:37      阅读:12      评论:0      收藏:0      [点我收藏+]

工具使用:npm install file-saver xlsx --save-dev

import { exportExcel } from "@/utils/util";
import XLSX from "xlsx";
/**
 * 导出为excel
 * @param {*} node 表格节点
 * @param {*} filename 导出文件名
 */
export function exportExcel (filename, wb) {
  var wbout = XLSX.write(wb, {
    bookType: "xlsx",
    bookSST: true,
    type: "array"
  });
  try {
    FileSaver.saveAs(
      new Blob([wbout], {
        type: "application/octet-stream"
      }),
      filename + ".xlsx"
    );
  } catch (e) {
    if (typeof console !== "undefined") console.log(e, wbout);
  }
  return wbout;
}
export default {};

使用:

 

    exportExcelXLSX() {
      let workbook = XLSX.utils.book_new();
      let ws = XLSX.utils.table_to_sheet(this.$refs.tableDisplay.$el, {
        raw: true,
      });
      XLSX.utils.book_append_sheet(workbook, ws, "sheet1");
      exportExcel("设备表", workbook);
    },

 

  此方法不导出所有  只导出当前页面

到处所有可以以totalsize为参数  渲染所有列表并隐藏

 <el-table
          :data="tableDataDisplay"
          cell-class-name="table-field-body"
          header-cell-class-name="table-field-head"
          height="100%"
          highlight-current-row
          ref="tableDisplay"
          tooltip-effect="light"
          @selection-change="handleSelectionChange"
          v-show="false"
        >

 

 

 async excelOut() {
      this.tableDataDisplay = [];
      try {
        const { totalSize } = this;
        const res = await getSbzl({
          index: 1,
          pageSize: totalSize,
        });
        if (res.code == 1) {
          const { records } = res.data;
          this.tableDataDisplay = [...records];
          this.$nextTick(() => {
            this.exportExcelXLSX();
          });
        }
      } catch (error) {}
    },

 

前端实现 EXCEL表导出

原文:https://www.cnblogs.com/qjh0208/p/14652089.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!