Element 表格导出为Excel表格

更新日期: 2019-12-01阅读: 4.7k标签: 表格

一、安装xlsx和filesaver

npm install --save xlsx file-saver


二、在表格组件中引入安装的2个文件

import FileSaver from "file-saver";
import XLSX from "xlsx";


三、html结构

    <el-table :data="tableData3" style="width: 500px" height="250" id="table">
      <el-table-column fixed prop="date" label="日期" width="150"></el-table-column>
      <el-table-column prop="name" label="姓名" width="120"></el-table-column>
      <el-table-column prop="province" label="省份" width="120"></el-table-column>
      <el-table-column prop="city" label="市区" width="120"></el-table-column>
      <el-table-column prop="address" label="地址" width="300"></el-table-column>
      <el-table-column prop="zip" label="邮编" width="120"></el-table-column>
    </el-table>
    <el-button type="success" style="margin-top:20px;" @click="exportExcel">导出</el-button>

 

四、导出的方法

  methods: {
      exportExcel() {
          // out-table 关联导出的dom节点
          var fixed = document.querySelector(".el-table__fixed");
          var excelTitle = "标题";
          var wb = XLSX.utils.table_to_book(document.querySelector("#table"));
          /* get binary string as output */
          var wbout = XLSX.write(wb, {
              bookType: "xlsx",
              bookSST: true,
              type: "array"
          });
          try {
              FileSaver.saveAs(
                  new Blob([wbout], { type: "application/octet-stream" }),
                  excelTitle + ".xlsx"
              );
          } catch (e) {
              if (typeof console !== "undefined") console.log(e, wbout);
          }
          return wbout;
      }
  }

在页面点击导出按钮时可以正常导出,但是如果左边有固定的列,相同的数据会导出2遍,可以做如下修改:

  methods: {
    exportExcel() {
      // table 关联导出的DOM节点
      var fixed = document.querySelector(".el-table__fixed");
      var wb;
      var excelTitle = "标题";
      if (fixed) {
        wb = XLSX.utils.table_to_book(
          document.querySelector("#table").removeChild(fixed)
        );
        document.querySelector("#table").appendChild(fixed);
      } else {
        wb = XLSX.utils.table_to_book(document.querySelector("#table"));
      }

      /* get binary string as output */
      var wbout = XLSX.write(wb, {
        bookType: "xlsx",
        bookSST: true,
        type: "array"
      });
      try {
        FileSaver.saveAs(
          new Blob([wbout], { type: "application/octet-stream" }),
          excelTitle + ".xlsx"
        );
      } catch (e) {
        if (typeof console !== "undefined") console.log(e, wbout);
      }
      return wbout;
    }
  }

链接: https://fly63.com/article/detial/6695

怎么给tbody加滚动条?通过css样式给表格tbody加垂直滚动条

tbody加滚动条实现思路:1,把tbody设置成display:block,然后就对其高度设置一个固定值,overflow设置成auto。2,把thead的tr设置成display:block。3,因为都设置成block所以要给td手动添加宽度。4,考虑到 tbody 产生了滚动条,这设置::-webkit-scrollbar进行解决。

html table表格斜线表头的实现方法总汇

在html中给table加一个斜线的表头有时是很有必要的,但是到底该怎么实现这种效果呢?总结了以下几种方法:UI背景图实现、css3中transform属性、利用border-top和border-left、css3的canvas、js的实现

html中<table>标签的各种属性介绍_table的使用

在html中一个table表单主要由tr、td、th元素组成,比较复杂一点的表单还会包含caption、 col、 colgroup、 thead、tfoot、 tbody等元素. 这篇文章主要介绍<table>标签的各种属性的使用

js的Handsontable表格的使用说明,如何增加格子样式

最近使用到了html和js的表格插件Handsontable。非常流行的web应用程序的UI组件,可用于 各种技术,如React、Angular和Vue,它很容易与任何数据源集成并提供了各种有用的功能

css中关于table的相关设置

设置好看的单边框表格:分别给table标签和td标签设置不在同一方向的border属性、给表格设置居中(表格整体居中、table文本居中),及文本居中、table的width和height设置、table文本格式设置

javascript动态合并纵向单元格

合并相邻行内容相同的单元格。rowspan指定单元格纵向跨越的行数。如rowspan被设为3,这表示该单元格必须跨越三行(本身一行,加上另外两行),此html代码使用的是ng语法,请根据自已使用的js框架自行调整。

通过css样式给表格tbody加垂直滚动条

tbody加滚动条实现思路:把tbody设置成display:block,然后就对其高度设置一个固定值,overflow设置成auto。把thead的tr设置成display:block。因为都设置成block所以要给td手动添加宽度。

CSS表格

表格的常用属性:1、边距属性padding(td的mrgin无效)2、边框属性border3、尺寸属性 width height4、文本格式 font-* text-* line-height5、背景属性 颜色,图片,渐变

Bootstrap Table含有按钮时表格不对齐

使用Bootstrap Table的时候,在含有按钮的情况,有时候表格的线垂直方向上不对齐,调整表格的高度小些或者大些(至于为什么,并不清楚,调整高度后就对齐了)

cells在Javascript中有什么作用?

在Javascript中,cells可以获取表格中某一行所有单元格的集合,可以通过索引获取集合中的指定td单元格。下面本篇文章就来给大家介绍一下Javascript的cells,希望对大家有所帮助。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!