zoukankan      html  css  js  c++  java
  • vue + element +table 纯前端导出excel(导出当前页数的列表数据)

    1、安装插件

    npm install file-saver --save
    npm install xlsx --save
    

    2、使用(方法二只用安装 xlsx 就可以导出数据)
    方法一:

    <template>
      <div>
      	 <el-button size="mini" class="none-radius" @click="handleExport">导出</el-button>
    	 <el-table id="exportTable" :data="tableData" style=" 100%">
     		<el-table-column prop="userName" label="姓名" width="150" align="center" :show-overflow-tooltip="true"></el-table-column>
            <el-table-column prop="sex" label="性别" width="70" align="center" :show-overflow-tooltip="true">
              <template slot-scope="scope">{{scope.row.sex | sexList}}</template>
            </el-table-column>
            ...
    	</el-table>
      </div> 
    </template>
    <script>
    import FileSaver from 'file-saver'
    import XLSX from 'xlsx'
    export default {
      methods() {
        handleExport() {
          this.$confirm('该操作将导出所有列表数据,是否继续?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() => {
            let exportTable = XLSX.utils.table_to_book(document.querySelector('#exportTable'))
            let exportTableOut = XLSX.write(exportTable, { bookType: 'xlsx', bookSST: true, type: 'array' })
            try {
              FileSaver.saveAs(new Blob([exportTableOut], { type: 'application/octet-stream' }), '表格名称.xlsx')
            } catch (e) { if (typeof console !== 'undefined') console.log(e, exportTableOut) }
            return exportTableOut;
    
          }).catch(() => { });
        },
      }
    }

    方法二:

    <template>
      <div>
      	 <el-button size="mini" class="none-radius" @click="handleExport">导出</el-button>
    	 <el-table id="exportTable" :data="tableData" style=" 100%">
     		<el-table-column prop="userName" label="姓名" width="150" align="center" :show-overflow-tooltip="true"></el-table-column>
            <el-table-column prop="sex" label="性别" width="70" align="center" :show-overflow-tooltip="true">
              <template slot-scope="scope">{{scope.row.sex | sexList}}</template>
            </el-table-column>
            ...
    	</el-table>
      </div> 
    </template>
    
    <script>
    import XLSX from 'xlsx'
    export default {
     methods: {
      handleExport() {
          this.$confirm('该操作将导出选中的列表数据,是否继续', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() => {
            //导出
            let table = document.getElementById('exportTable');
            let worksheet = XLSX.utils.table_to_sheet(table);
            let workbook = XLSX.utils.book_new();
            XLSX.utils.book_append_sheet(workbook, worksheet, 'sheet');
            try {
              XLSX.writeFile(workbook, '文档ll.xlsx');
            } catch (e) {
              console.log(e, workbook);
            }
    
          }).catch(() => { });
    
        },
       }
      }
  • 相关阅读:
    WPF窗体设计不符合微软自己的UX Guide
    NUnit测试WPF程序的一个小技巧
    Windows Vista中五花八门的菜单赏析
    忙碌文档
    怎样做才能算是一个UX良好的软件
    编写帮助文档经验总结
    [WPF Bug清单]之(7)——顽固的Error Template
    让NSIS生成的安装包在静默安装时从命令行窗口输出安装信息
    [WPF Bug清单]之(9)——消失的光标
    [提个醒] C#中yield return的小缺点
  • 原文地址:https://www.cnblogs.com/gluncle/p/13679219.html
Copyright © 2011-2022 走看看