使用:若依框架中,当然不是若依框架也可参考官方文档改成自己想要的代码
文章内容出处:在开发过程中 ,我发现我写的几个页面的表格数据是一样的,只是因为其中某个条件的不同,从而导出的列表不同,所以我希望对列信息根据业务去动态显示,那么我们可以进行如下处理,参考若依官方文档更新的内容......
示例:对车辆类型进行条件判断,符合某个条件则隐藏属性,导出的文件则不会显示此列信息。
1.ExcelUtil.java:
/**
* 需要排除列属性
*/
public String[] excludeFields;
/**
* 隐藏Excel中列属性
*
* @param fields 列属性名 示例[单个"name"/多个"id","name"]
* @throws Exception
*/
public void hideColumn(String... fields){
this.excludeFields = fields;
}
接着在原来的getFields()方法里加上圈起来的条件
2.Controller:
@PostMapping("/export")
public void export(HttpServletResponse response, CarUseStatusVo carUseStatusVo) {
List<CarUseStatusVo> list = carUseApplyService.selectCarUseApplyList(carUseStatusVo);
ExcelUtil<CarUseStatusVo> util = new ExcelUtil<CarUseStatusVo>(CarUseStatusVo.class);
//这里util.hideColumn()里面的字段可以隐藏单个、也可以多个
if (条件A) {
// 不显示用车原因(单个)
util.hideColumn("useReason");
}
else if (条件B) {
// 不显示用车原因、GPS里程(多个)
util.hideColumn("useReason", "gpsMileage","","",...);
}
util.exportExcel(response, list, "车辆使用申请数据");
}
3..vue页面请求:
<el-button icon="el-icon-download" size="small" @click="handleExport">导出</el-button>
methods:{
/** 导出按钮操作 */
handleExport() {
this.download('/export', {
-- 搜索查询参数
...queryParams
}, `车辆使用申请列表r_${new Date().getTime()}.xlsx`)
}
}
到这里,基本就已完成了,原来框架就有的,所以改动的不多,也是参考最新的官方文档做的修改,因为之前拉下来的时候文件里还没有这部分代码。
今天的学习记录就到这了,拜拜!
说明:学习记录,若有错误,欢迎指正,若有疑问,欢迎评论