elementUI 将el-table表格导出excel文件

elementUI 将el-table表格导出excel文件

单机
1 首先安装依赖:xlsx、file-saver:
npm install xlsx --save
npm install file-saver --save
2在main.js中导入

// vue中导出excel表格模板
import FileSaver from 'file-saver'
import XLSX from 'xlsx'

Vue.prototype.$FileSaver = FileSaver; //设置全局
Vue.prototype.$XLSX = XLSX; //设置全局

2点击导出按钮

 <el-button @click="$router.push('/addressAdd')" type="primary" icon="el-icon-edit" >添加地址</el-button>
        <el-button @click="exportToExcel">导出</el-button>
<el-table
                    id="out-table"
                    ref="multipleTable"
                    :data="tableData"
                    :header-cell-style="{background:'#ccc',color: ' #333'}"
                    :show-header="true"
                    style="width: 100%"
                    :highlightCurrentRow="true"
            >
            <el-table-column prop="id" label="编号"></el-table-column>

            <el-table-column prop="member_id" label="会员id"></el-table-column>

            <el-table-column prop="receive_name" label="收货人姓名">
            </el-table-column>

            <el-table-column prop="tel" label="电话">
            </el-table-column>

            <el-table-column prop="poscode" label="邮编">
            </el-table-column>

            <el-table-column prop="addmes" label="省市区/县">
            </el-table-column>

            <el-table-column prop="detail_address" label="详细地址">
            </el-table-column>


            <!--fixed="right"-->
            <el-table-column
                    label="操作">
                <template slot-scope="scope">
                    <el-button @click="edit(scope.row)" type="text" size="small">修改</el-button>
                    <el-button @click="deleteAddressVip(scope.row)" type="text" size="small">删除</el-button>
                </template>
            </el-table-column>
        </el-table>

3在组件的methods中写入方法

methods: {
            //   点击按钮  导出excel表格:
            exportToExcel: function() {
                let tables = document.getElementById("out-table");
                let table_book = this.$XLSX.utils.table_to_book(tables);
                var table_write = this.$XLSX.write(table_book, {
                    bookType: "xlsx",
                    bookSST: true,
                    type: "array"
                });
                try {
                    this.$FileSaver.saveAs(
                        new Blob([table_write], { type: "application/octet-stream" }),
                        "sheetjs.xlsx"
                    );
                } catch (e) {
                    if (typeof console !== "undefined") console.log(e, table_write);
                }
                return table_write;
            },
            }

4注意:

this.$XLSX.utils.table_to_book中放的是table的dom节点
sheetjs.xlsx导出的是表格的名字

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于EL表格,可以使用以下方法将其导出Excel文件: 1.使用xlsx插件 该插件支持将Vue.js中的数据和样式导出为.xlsx文件。安装插件后,可以通过以下代码将表格导出Excel文件: ``` import { export_json_to_excel } from '@/excel/Export2Excel'; export function exportTableToExcel(tableId, fileName) { const tableData = []; const tableHeader = []; const table = document.getElementById(tableId); const rows = table.querySelectorAll('tr'); for (let i = 0; i < rows.length; i++) { const rowData = []; const cells = rows[i].querySelectorAll('td'); if (i === 0) { // 处理表头数据 for (let j = 0; j < cells.length; j++) { tableHeader.push(cells[j].textContent); } } else { // 处理单元格数据 for (let j = 0; j < cells.length; j++) { rowData.push(cells[j].textContent.trim()); } tableData.push(rowData); } } // 导出Excel export_json_to_excel(tableHeader, tableData, fileName); } ``` 调用方法如下: ``` exportTableToExcel('myTable', 'myExcel.xlsx'); ``` 其中参数tableId为表格的id,fileName为导出Excel文件名。 2.使用Bootstrap Table Export插件 该插件适用于使用Bootstrap Table插件的表格。安装插件后,可以通过以下代码将表格导出Excel文件: ``` $('#myTable').tableExport({ type: 'excel', fileName: 'myExcel', worksheetName: 'Sheet1' }); ``` 调用方法与普通Bootstrap Table插件相似,只需修改type参数为'excel'即可。其他参数与使用方法见插件文档。 注意:EL表格使用的是ElementUI插件,并非Bootstrap Table插件。使用Bootstrap Table Export插件需要先将表格转换为Bootstrap Table插件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值