根据业务动态导出列表信息

使用:若依框架中,当然不是若依框架也可参考官方文档改成自己想要的代码

文章内容出处:在开发过程中 ,我发现我写的几个页面的表格数据是一样的,只是因为其中某个条件的不同,从而导出的列表不同,所以我希望对列信息根据业务去动态显示,那么我们可以进行如下处理,参考若依官方文档更新的内容......

示例:对车辆类型进行条件判断,符合某个条件则隐藏属性,导出的文件则不会显示此列信息。

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`)
  }
}

到这里,基本就已完成了,原来框架就有的,所以改动的不多,也是参考最新的官方文档做的修改,因为之前拉下来的时候文件里还没有这部分代码。

今天的学习记录就到这了,拜拜!

说明:学习记录,若有错误,欢迎指正,若有疑问,欢迎评论

猜你喜欢

转载自blog.csdn.net/qq_52445443/article/details/126248627