文章博客

技术团队文档示例


第二十三天:Element-ui组件库Table表格导出Excel表格

<h4>Element-ui组件库Table表格导出Excel表格</h4> <p><strong>实现效果</strong> <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/8eada7bf02bb1b015fa881e4d8f12163?showdoc=.jpg" alt="" /></p> <p>点击“点击导出”按钮后下载sheetjs.xlsx文件(导出文件)</p> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/3a2470df60140679f9d030fe38131456?showdoc=.jpg" alt="" /></p> <p><strong>Element组件库中的el-table表格导出需要的主要是两个依赖:(xlsx 和 file-saver)</strong></p> <ul> <li>安装</li> </ul> <blockquote> <p>npm install --save xlsx file-saver</p> </blockquote> <ul> <li>两个插件的详细地址在下面</li> </ul> <blockquote> <p><a href="https://github.com/SheetJS/js-xlsx">https://github.com/SheetJS/js-xlsx</a> <a href="https://github.com/eligrey/FileSaver.js">https://github.com/eligrey/FileSaver.js</a></p> </blockquote> <p>代码部分(有注释解释说明)</p> <pre><code class="language-javascript"> &lt;template&gt; &lt;div class="table"&gt; &lt;!--给表格添加一个id,导出文件事件需要使用--&gt; &lt;el-table :data="tableData" border style="width: 100%" id="out-table" &gt; &lt;el-table-column prop="date" label="日期" width="180" &gt; &lt;/el-table-column&gt; &lt;el-table-column prop="name" label="姓名" width="180" &gt; &lt;/el-table-column&gt; &lt;el-table-column prop="address" label="地址" &gt; &lt;/el-table-column&gt; &lt;/el-table&gt; &lt;!--给按钮绑定事件--&gt; &lt;button @click="exportExcel"&gt;点击导出&lt;/button&gt; &lt;/div&gt; &lt;/template&gt; &lt;script&gt; // 引入导出Excel表格依赖 import FileSaver from "file-saver"; import XLSX from "xlsx"; export default { name: "javascriptthree", data() { return { tableData: [ { date: "2016-05-02", name: "王小虎", address: "上海市普陀区金沙江路 1518 弄" }, { date: "2016-05-04", name: "王小虎", address: "上海市普陀区金沙江路 1517 弄" }, { date: "2016-05-01", name: "王小虎", address: "上海市普陀区金沙江路 1519 弄" }, { date: "2016-05-03", name: "王小虎", address: "上海市普陀区金沙江路 1516 弄" } ] }; }, mounted() {}, methods: { //定义导出Excel表格事件 exportExcel() { /* 从表生成工作簿对象 */ var wb = XLSX.utils.table_to_book(document.querySelector("#out-table")); /* 获取二进制字符串作为输出 */ var wbout = XLSX.write(wb, { bookType: "xlsx", bookSST: true, type: "array" }); try { FileSaver.saveAs( //Blob 对象表示一个不可变、原始数据的类文件对象。 //Blob 表示的不一定是JavaScript原生格式的数据。 //File 接口基于Blob,继承了 blob 的功能并将其扩展使其支持用户系统上的文件。 //返回一个新创建的 Blob 对象,其内容由参数中给定的数组串联组成。 new Blob([wbout], { type: "application/octet-stream" }), //设置导出文件名称 "sheetjs.xlsx" ); } catch (e) { if (typeof console !== "undefined") console.log(e, wbout); } return wbout; } } }; &lt;/script&gt; &lt;style scoped&gt; .table { width: 100%; height: 300px; } &lt;/style&gt;</code></pre>

页面列表

ITEM_HTML