前台:
<template>
<div>
<el-form ref="form" :model="form" :rules="rules2" label-width="120px">
<el-form-item style="text-align: center">
<el-button
type="primary"
@click="
GetExportExcelFields();
GetExcelList();
"
>获取导出列</el-button
>
<el-form-item label-width="20px">
<download-excel
:fields="json_fields"
:data="list"
:before-generate="startDownload"
:before-finish="finishDownload"
name="快捷查询导出.xls"
type="xls"
>
<el-button type="primary">导出</el-button>
</download-excel>
</el-form-item>
</el-form-item>
</el-form>
</div>
</template>
<script>
import { GetExportExcelFields, GetExcelList } from "@/api/test";
export default {
data() {
return {
form: {},
rules2: {},
json_fields: {},
list: [],
};
},
methods: {
startDownload() {},
finishDownload() {
let self = this;
self.$message({
message: "恭喜,数据导出成功",
type: "success",
});
},
GetExportExcelFields() {
let param = { TableName: "aa" };
let obj = {};
this.json_fields = obj;
GetExportExcelFields(param).then((response) => {
response.forEach((v) => {
this.list2 = this.list;
this.$set(obj, v.FieldDes, v.FieldName); //添加对象
this.json_fields = obj;
});
});
},
GetExcelList() {
this.listLoading = true;
let param = {
username: "s",
};
GetExcelList(param).then((response) => {
this.list = response.Data;
});
},
},
};
</script>
<style scoped>
.line {
text-align: center;
}
</style>
后台:
[HttpGet("GetExportExcelFields")]
public List<DbTableInfo> GetExportExcelFields(string TableName)
{
List<DbTableInfo> test = _ItestStore.GetExportExcelFields(TableName);
return test;
}
[HttpGet("GetExcelList")]
public async Task<IpResponse> GetExcelList()
{
var test = await _ItestStore.GetExcelList();
return IpResponse.Create(true, "0", "查询成功", test);
}
public class DbTableInfo
{
/// <summary>
/// 表信息
/// </summary>
public string TableName { get; set; }//字段名称
public string FieldName { get; set; }//字段名称
public string FieldDes { get; set; }//字段描述
}
