需要引入poi Maven 依赖
后端导出分两种情况:
1. 无模板导出
2. 有模板导出
Vue 代码:
<el-button slot="btn" @click="exports">导出</el-button>
exports() {
let handleRecordIds = [];
if (this.$refs.handleRecordTable.getSelection().length > 0) {
this.$refs.handleRecordTable.getSelection().forEach(item => {
handleRecordIds.push(item.handleRecordId);
});
}
let localFm = cloneObj(this.$refs.handleRecordTable.getFm());
if (localFm.handleTime) {
localFm.handleTimeStr = localFm.handleTime[0];
localFm.handleTimeEnd = localFm.handleTime[1];
}
localFm.handleTime = null;
localFm.handleRecordIds = handleRecordIds;
/* 设置 responseType:'arraybuffer' 解决下载下来的文件乱码问题
* 设置type:'application/vnd.ms-excel;' 设置excel文件的格式
* */
this.$axios.post('http://localhost:50103/handleRecord/exportHandleRecord', localFm, {responseType: 'arraybuffer'})
.then((res) => {
const blob = new Blob([res.data], {type: 'application/vnd.ms-excel;'});
const a = document.createElement('a');
// 创建下载的链接
let href = window.URL.createObjectURL(blob);
a.href = href;
//显示下载文件名
let _fileName = res.headers['content-disposition'].split('=')[1];
//