vue实现导出excel

博客介绍了Vue导表功能的实现,点击导表可跳出导出文件。实现过程包括先安装依赖,在需要的组件内引入,使用时要保证表格格式对应,还提及用布局写表格会报错,并表示会展示正确写法,涉及js和css。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考小圣贤君

最终效果

点击导表

跳出导出文件

实现过程

1.先安装依赖

npm install --save xlsx file-saver
  
  

2.在需要的组件内引入


  
  
  1. import FileSaver from "file-saver";
  2. import XLSX from "xlsx";

3.使用---必须保证表格格式对应,不然报错

 

我用了布局来写的表格,然后就会报这个错

好吧,来看看正确的写法


  
  
  1. <template>
  2. <div>
  3. <!-- 导出按钮 -->
  4. <div class="toexcel">
  5. <el-button @click="exportExcel" type="primary" class="button" style="width:70px;position:absolute;top:0;right:30px">导出 </el-button>
  6. </div>
  7. <el-table
  8. class= "table"
  9. :data= "tableData"
  10. border
  11. style= "width: 100%">
  12. <el-table-column
  13. prop= "date"
  14. label= "日期"
  15. width= "180">
  16. </el-table-column>
  17. <el-table-column
  18. prop= "name"
  19. label= "姓名"
  20. width= "180">
  21. </el-table-column>
  22. <el-table-column
  23. prop= "address"
  24. label= "地址">
  25. </el-table-column>
  26. </el-table>
  27. </div>
  28. </template>

js


  
  
  1. <script>
  2. import FileSaver from "file-saver";
  3. import XLSX from "xlsx";
  4. export default {
  5. data() {
  6. return {
  7. tableData: [{
  8. date: '2016-05-02',
  9. name: '王小虎',
  10. address: '上海市普陀区金沙江路 1518 弄'
  11. }, {
  12. date: '2016-05-04',
  13. name: '王小虎',
  14. address: '上海市普陀区金沙江路 1517 弄'
  15. }, {
  16. date: '2016-05-01',
  17. name: '王小虎',
  18. address: '上海市普陀区金沙江路 1519 弄'
  19. }, {
  20. date: '2016-05-03',
  21. name: '王小虎',
  22. address: '上海市普陀区金沙江路 1516 弄'
  23. }]
  24. };
  25. },
  26. methods: {
  27. // 导出表格所用
  28. exportExcel() {
  29. // 设置当前日期
  30. let time = new Date();
  31. let year = time.getFullYear();
  32. let month = time.getMonth() + 1;
  33. let day = time.getDate();
  34. let name = year + "" + month + "" + day;
  35. // console.log(name)
  36. /* generate workbook object from table */
  37. // .table要导出的是哪一个表格
  38. var wb = XLSX.utils.table_to_book( document.querySelector( ".table"));
  39. /* get binary string as output */
  40. var wbout = XLSX.write(wb, {
  41. bookType: "xlsx",
  42. bookSST: true,
  43. type: "array"
  44. });
  45. try {
  46. // name+'.xlsx'表示导出的excel表格名字
  47. FileSaver.saveAs(
  48. new Blob([wbout], { type: "application/octet-stream" }),
  49. name + ".xlsx"
  50. );
  51. } catch (e) {
  52. if ( typeof console !== "undefined") console.log(e, wbout);
  53. }
  54. return wbout;
  55. }
  56. }
  57. };
  58. </script>

css


  
  
  1. < style scoped>
  2. /* 导出按钮 */
  3. .toexcel {
  4. cursor: pointer;
  5. cursor: hand;
  6. width: 70px;
  7. height: 34px;
  8. }
  9. </ style>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值