EasyExcel 筛选导出
EasyExcel官网
条件参数对象
/*** @Author 庭前云落* @Date 2021/8/3 13:55* @Description*/
@Data
@ApiModel(value = "案件模块查询条件参数对象", description = "")
public class CaseBasicQueryInfo {@ApiModelProperty(value = "当前页码")private Integer pageNum;@ApiModelProperty(value = "每页条数")private Integer pageSize;@ApiModelProperty(value = "受理开始时间")private String startAcceptanceDate;@ApiModelProperty(value = "受理结束时间")private String endAcceptanceDate;@ApiModelProperty(value = "登记开始时间")private String startRegisterDate;@ApiModelProperty(value = "登记结束时间")private String endRegisterDate;@ApiModelProperty(value = "案件来源")private String caseResourceName;@ApiModelProperty(value = "案件标题")private String caseTitle;@ApiModelProperty(value = "被反映人姓名")private String accusedName;@ApiModelProperty(value = "案件编码、被反映人对象职级")private String multipleConditions;@ApiModelProperty(value = "用户筛选的列字段集合")private List<String> columnList;}
全部导出字段的封装VO
/*** @Author 庭前云落* @Date 2021/8/3 14:07* @Description*/
@Data
//内容行高
@ContentRowHeight(15)
//标题行高
@HeadRowHeight(20)
//单元格宽度
@ColumnWidth(25)
@ApiModel(value="案件台账数据传输对象", description="")
public class CaseBasicQueryList implements Serializable {//@ExcelProperty("状态")//@ApiModelProperty(value = "当前办理阶段代码/状态")//@TableField("DEAL_FLAG")//private String dealFlag;@ExcelProperty("状态")@ApiModelProperty(value = "当前办理阶段代码值")@TableField("DEAL_FLAG_NAME")private String dealFlagName;@ApiModelProperty(value = "案件标题(加密)")@TableField("CASE_TITLE")@ExcelProperty("案件标题")private String caseTitle;@ApiModelProperty(value = "案件来源代码值")@TableField("CASE_RESOURCE_NAME")@ExcelProperty("案件来源")private String caseResourceName;@ApiModelProperty(value = "案件编码")@TableField("CASE_NO")@ExcelProperty("案件编码")private String caseNo;@ApiModelProperty(value = "受理线索编码")@TableField("DISPOSITION_NO")@ExcelProperty("受理线索编码")private Date dispositionNo;@ApiModelProperty(value = "信访举报编码")@TableField("PETITION_NO")@ExcelProperty("信访举报编码")private String petitionNo;@ApiModelProperty(value = "受理日期")@TableField("ACCEPTANCE_DATE")@ExcelProperty("受理日期")private Date acceptanceDate;@ApiModelProperty(value = "登记日期")@TableField("REGISTER_DATE")@ExcelProperty("登记日期")private Date registerDate;@ApiModelProperty(value = "监委立案机关/纪委立案机关")@TableField("JIANWEI_DEPT_NAME")@ExcelProperty("监委立案机关/纪委立案机关")private String jianweiDeptName;@ApiModelProperty(value = "监委立案时间/纪委立案时间")@TableField("JIANWEI_CREATE_DATE")@ExcelProperty("监委立案时间/纪委立案时间")private Date jianweiCreateDate;@ApiModelProperty(value = "被反映人姓名(加密)")@TableField("ACCUSED_NAME")@ExcelProperty("被反映人姓名")private String accusedName;@ApiModelProperty(value = "被反映对象职级代码值")@TableField("RANK_NAME")@ExcelProperty("职级")private String rankName;@ApiModelProperty(value = "是否署名 1是0否")@TableField("IS_ANONYMOUS_FLAG")@ExcelProperty("是否署名")private String isAnonymousFlag;@ApiModelProperty(value = "反映人名称(加密)")@TableField("ACCUSER_NAME")@ExcelProperty("反映人姓名")private String accuserName;}
Controller接口
/*** <p>* 案件管理模块Controller接口* </p>** @author WangTingWei* @since 2021-07-27*/
@Slf4j
@RestController
@RequestMapping("/caseBasicInfo")
@Api(tags = "案件基本信息接口")
public class CaseBasicInfoController {@Resourceprivate CaseBasicInfoService caseBasicInfoService;/*** 导出案件台账信息* @return*/@ApiOperation(value = "导出案件台账信息")@RequestMapping(value = "/exportCaseBasicInfoList", method = RequestMethod.GET)@LogAnnotation("导出案件台账信息")public void exportCaseBasicInfoList(@RequestBody(required=false) CaseBasicQueryInfo caseBasicQueryInfo, HttpServletResponse response) {try {//指定需要导出的列Set<String> includeColumnFiledNames = new HashSet<String>();caseBasicQueryInfo.getColumnList().stream().forEach(column->{includeColumnFiledNames.add(column);});List<CaseBasicQueryList> queryListInfo = caseBasicInfoService.exportCaseBasicInfoList(caseBasicQueryInfo);response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");response.setCharacterEncoding("utf-8");String fileName = URLEncoder.encode("案件台账", "UTF-8").replaceAll("\\+", "%20");response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");EasyExcel.write(response.getOutputStream(), CaseBasicQueryList.class).includeColumnFiledNames(includeColumnFiledNames).sheet("案件台账").doWrite(queryListInfo);} catch (Exception e) {log.error("导出案件台账信息异常",e);}}}
底层的查询
<select id="exportCaseBasicInfoList" resultType="com.sinosoft.system.casebasicinfo.entity.CaseBasicQueryList">SELECT CBI.DEAL_FLAG_NAME,CBI.CASE_TITLE,CBI.CASE_RESOURCE_NAME,CBI.CASE_NO,CBI.DISPOSITION_NO,CBI.PETITION_NO,CBI.ACCEPTANCE_DATE,CBI.REGISTER_DATE,CBI.JIANWEI_DEPT_NAME,CBI.JIANWEI_CREATE_DATE,ACCUSED.ACCUSED_NAME,ACCUSED.RANK_NAME,ACCUSER.IS_ANONYMOUS_FLAG,ACCUSER.ACCUSER_NAMEFROM CASE_BASIC_INFO CBILEFT JOIN ACCUSED_INFO ACCUSEDON CBI.OID = ACCUSED.BUSINESS_IDLEFT JOIN ACCUSER_INFO ACCUSERON CBI.OID = ACCUSER.BUSINESS_IDWHERE 1=1 AND CBI.DEAL_FLAG IN ('33','35','36','37')<if test="caseBasicQueryInfo != null "><!--受理时间--><if test="caseBasicQueryInfo.startAcceptanceDate!= null ">and CBI.ACCEPTANCE_DATE between #{caseBasicQueryInfo.startAcceptanceDate}</if><if test="caseBasicQueryInfo.endAcceptanceDate!= null ">and #{caseBasicQueryInfo.endAcceptanceDate}</if><!--登记时间--><if test="caseBasicQueryInfo.startRegisterDate!= null ">and CBI.REGISTER_DATE between #{caseBasicQueryInfo.startRegisterDate}</if><if test="caseBasicQueryInfo.endRegisterDate!= null ">and #{caseBasicQueryInfo.endAcceptanceDate}</if><!--案件来源--><if test="caseBasicQueryInfo.caseResourceName!= null ">and CBI.CASE_RESOURCE_NAME LIKE '%${caseBasicQueryInfo.endAcceptanceDate}%'</if><!--案件标题--><if test="caseBasicQueryInfo.caseTitle!= null ">and CBI.CASE_TITLE LIKE '%${caseBasicQueryInfo.caseTitle}%'</if><if test="caseBasicQueryInfo.accusedName!= null ">and ACCUSED.ACCUSED_NAME LIKE '%${caseBasicQueryInfo.accusedName}%'</if><if test="caseBasicQueryInfo.multipleConditions!= null ">and CBI.CASE_NO LIKE '%${caseBasicQueryInfo.multipleConditions}%'or ACCUSED.RANK_NAME LIKE '%${caseBasicQueryInfo.multipleConditions}%'</if>ORDER BY cbi.CREATE_TIME DESC</if></select>
主要还是Controller里面的处理,跟官网的没区别。SQL没必要看,贴 SQL 是为了大家知道数据从哪里来的。
EasyExcel 筛选导出相关推荐
- springboot使用jxls导出excel___(万能通用模板)--- SpringBoot导入、导出Excel文件___SpringBoot整合EasyExcel模板导出Excel
springboot使用jxls导出excel 实现思路: 首先在springBoot(或者SpringCloud)项目的默认templates目录放入提前定义好的Excel模板,然后在具体的导出接口 ...
- easyexcel的导出
目录 1 前言 2 导出实战 1 前言 之前用easypoi的导出用到了表头多层嵌套时,发现很麻烦,需要些很多的代码,所以今天看了一下easyexcel的导出,发现表头情况不复杂时和easypoi的难 ...
- EasyExcel导入导出下载模板(带下拉)
EasyExcel导入导出网上资料很多,这里就不多做描述了,总之就是一款比较轻而小,易用的excel操作工具包:这里在项目中使用到,做下笔记.以及表格中下拉框的实现: 声明:本文思路是借鉴于某大神的, ...
- 解决Docker缺少字体导致Easyexcel无法导出的问题
解决Docker缺少字体导致Easyexcel无法导出的问题 问题背景 报错信息展示 追踪问题 临时解决方案 终极方案 问题背景 公司项目最近有要实现Excel导入导出的功能,考虑到以前使用Apach ...
- EasyExcel模板导出(行和列自动合并)
目录 1.需求背景: 2.初步实现: 3.列合并 4.行合并 5.excel字体样式内容居中 6.将三个工具类初始化后注册后最终代码: 1.需求背景: ①需要从第三方获取数据,第三方接口有两个参数,开 ...
- easyExcel 填写导出转换日期格式
在使用easyExcel 填写导出的时候,遇到Date类型的字段填写在excel,显示的单元格的格式为自定义格式,原本该单元格格式设置了边框,居中,填写导出后的居然没有加边框,也没有居中.按照源码,写 ...
- EasyExcel动态导出多级表头
EasyExcel动态导出多级表头 工具类 /*** 特殊表头导出方法* @param response* @param fileName* @param sheetName* @param list ...
- EasyExcel表格导出自动列宽设定
EasyExcel表格导出自动列宽设定 public static class AutoColumnWidthStrategy implements CellWriteHandler {@Overri ...
- 【使用EasyExcel导入导出】
使用EasyExcel导入导出 一,为什么要使用EasyExcel 1.1 EasyExcel与Poi的区别 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个 ...
最新文章
- OpenCV支持中文字符输出实现
- zynq学习02 新建一个Helloworld工程
- python资料库-Python对接六大主流数据库,只需三步
- helm istio k8s docker
- font-size用VW来写的方法
- 鼠标拖动改变DIV等网页元素的大小的最佳实践
- mysql workbench 无法编辑_MySQL Workbench编辑表数据是只读的
- Cluster - LB - haproxy
- strlensizeof
- 【渝粤教育】国家开放大学2018年春季 0653-21T机电控制与可编程控制技术 参考试题
- JasperReport和iReport的java集成大全
- Silverlight初级教程-概述
- mysql 面试知识点笔记(三)联合索引的最左匹配原则
- Acer EC-471G BIOS升级注意事项
- 信息学竞赛NOIACM在线评测题库网站精选【翼虎小微整理】
- VS2013 打包步骤
- 离散数学主析取及主合取范式
- PS常用案例步骤详解,自学 Photoshop 2022 Mac版,多个PS后期修图小案例笔记
- 反向传播算法(代码笔记)
- am调制解调仿真matlab,MATLABAM调制解调系统仿真报告.doc