vue中如何进行Excel文件的下载

业务需求:

Q1、文件批量导入前,需要按照指定的格式与内容上传Excel文件,首先要下载模板。

Q2、将查询到的数据以table表的形式 进行显示,对表格内容进行有选择的下载。
A、勾选下载:
table表中包含一列选择框,el-table-column,设type属性为selection即可

B、搜索下载:
根据搜索条件查询相关数据,下载查询出的数据。

Q3、上传Excel文件时,记录有若干条,不满足条件的记录将不能成功上传,把上传有误的记录进行下载,其中包含出错原因。

实现方式

A1、模板下载:

前提:后端已配置模板数据,有接口。
实现:window.open(“URL”);
手册:https://www.runoob.com/jsref/obj-window.html
Window对象表示浏览器中打开的窗口。所有浏览器都支持该对象。
实例:
###alert()显示带有一段消息和一个确认按钮的警告框。
alert(“error submit!!”)
在这里插入图片描述
###open()打开一个新的浏览器窗口或查找一个已命名的窗口。
window.open("/api/teach/downLoadTemplate");
在这里插入图片描述

A2、搜索下载:

前提:后端已配置检索数据的接口。
实现:window.open(“URL”);
实例:
在这里插入图片描述
需要请求的URL:
在这里插入图片描述
实现:

window.open("/api/ach/eortExcnon?"+"code="+this.qourseUnion.code+"&"+"institunName="+this.queCoursion.insttName+"&"+"name="+this.queryCoeUnion.name);

A3、勾选下载:

场景:将table表数据勾选导出Excel文件
实现:引入js文件,做相应配置。
具体步骤:
1、安装三个依赖项:
$ npm install -S file-saver
$ npm install -S xlsx
$ npm install -D script-loader
2、在项目中新建文件夹,导入js文件。
文件下载地址: https://github.com/7metamorphosis/study/tree/vendor
3、在组件中引入js文件:
在这里插入图片描述
【注】网上资料会有在webpack配置文件中做额外的配置.

在build/webpack.base.conf.js中resolve的alias加入'vendor':   
path.resolve(__dirname,'../src/vendor'), 
##注意:配置完成后 直接运行npm run dev  则会出现报错  
此时需要将依赖包node_modules直接删除 重新用cnpm install 进行安装。
最后再运行npm run dev 即可

自己配置时,可能找不到这个配置文件。这个默认的配置文件与使用的vue-cli脚手架初始化项目版本有关。目前我们这个项目中的配置文件是vue.config.js。这个配置文件中不需要对上面引入的Excel js文件做相应配置,只需要在使用导出Excel文件的组件中导入即可。

4、业务代码编写:
组件引入:

<!-- 课程数据列表 -->
    <el-table
      ref="multipleTable"
      :data="courseList"
      stripe
      tooltip-effect="dark"
      @selection-change="handleSelectionChange"
    >
      <el-table-column type="selection" width="50"></el-table-column>
      <el-table-column fixed sortable prop="code" width="120" label="课程代码"></el-table-column>
      <el-table-column prop="name" show-overflow-tooltip label="课程名称"></el-table-column>
      <el-table-column prop="courseType" label
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值