如何将el-table的数据导出?

简介: 如何将el-table的数据导出?

最近公司要求实现将表格内容导出,特地将方法分享出来供大家学习。

设计图:

首先需要安装两个相关依赖:

npm install --save xlsx file-saver

其次在该页面引入依赖

1. import FileSaver from 'file-saver'
2. import XLSX from 'xlsx'

接下来前端代码,我们设置两个参数,一个name代表导出exel表的名称,一个是el-table的id,这样极大的提高了方法的复用率。

            <div class="title1-right">
              单位排名
              <el-button type="primary" size="mini" class="button" @click="exportExcel('单位排名','unit')"><i class="iconfont icon-daochuyubaodan " style="margin:10px 10px 0 0" />导出</el-button>
            </div>
          </div>
          <el-table
            id="unit"
            v-loading="loading"
            :data="tableData"
            tooltip-effect="dark"
            height="470"
            style="width: 96%;margin: 20px auto "
            :header-cell-style="{background:'#f5f7fa',color:'#909399'}"
          >
            <el-table-column
              label="排名"
              width="80"
              align="center"
              :resizable="false"
              show-overflow-tooltip
            >
              <template slot-scope="scope">
                <span v-if="scope.row.ranking!=='01'&&scope.row.ranking!=='02'&&scope.row.ranking!=='03'">{{ scope.row.ranking }}</span>
              </template>
            </el-table-column>
            <el-table-column
              label="单位"
              width="120"
              align="center"
              :resizable="false"
              show-overflow-tooltip
            >
              <template slot-scope="scope">{{ scope.row.unit }}</template>
            </el-table-column>
            <el-table-column
              :resizable="false"
              show-overflow-tooltip
              label="优秀率"
              align="center"
            >
              <template slot-scope="scope">
                <el-progress :percentage="scope.row.percentage" />
              </template>
            </el-table-column>
          </el-table>

导出方法:

     exportExcel(name, id) {
      var wb = XLSX.utils.table_to_book(document.querySelector('#' + id))
      var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' })
      try {
        FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), name + '.xlsx')
      } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) }
      return wbout
    }

最终效果:

 

相关文章
|
6月前
|
前端开发 微服务
Element-Plus 表格 el-table 如何支持分页多选
Element-Plus 表格 el-table 如何支持分页多选
|
JavaScript
Vue表格显示问题:v-show无法影响el-table-column列的解决方案
Vue表格显示问题:v-show无法影响el-table-column列的解决方案
862 0
|
3月前
|
数据挖掘 数据处理 数据格式
R语言中使用readr与data.table导入数据的技术探索
【8月更文挑战第29天】`readr`和`data.table`都是R语言中非常优秀的数据导入工具,它们各有优势。`readr`提供了丰富的函数来读取各种格式的数据文件,并且支持在读取时指定列名和类型,非常适合处理小型到中型的数据集。而`data.table`的`fread`函数则以其高效的数据读取能力著称,尤其适合处理大型数据集。此外,`data.table`还提供了强大的数据处理功能,能够极大地提高数据分析的效率。 在实际应用中,我们可以根据数据的规模和格式选择合适的工具来导入数据,以便更好地进行后续的数据分析和建模工作。
|
25天前
|
JavaScript 前端开发 数据处理
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
|
3月前
|
JavaScript 前端开发 Shell
Element-ui Table表格导出功能的实现
Element-ui Table表格导出功能的实现
70 0
|
存储
el-table分页记录数据
el-table分页记录数据
150 0
|
6月前
|
数据格式
Vue3中el-table表格数据不显示
Vue3中el-table表格数据不显示
|
SQL 存储 关系型数据库
PostgreSQL 动态表复制(CREATE TABLE AS & CREATE TABLE LIKE)
PostgreSQL 动态表复制(CREATE TABLE AS & CREATE TABLE LIKE)
|
前端开发
el-table表格还可以这么玩
我们都知道表格是横向渲染的,一行一行去展示。不过博主这里有个需求是纵向渲染,一列一列去展示,下面是全部代码,分享出来或许能帮到你们
289 1
el-table表格还可以这么玩