private static final Integer pageSize=100000;
/** * zcc * @param fixmedinsCode * @param title * @param sheetName */ public void exportAudtMorethanVo(String fixmedinsCode,String title, String sheetName) { String filePath = excelPath + fixmedinsCode; FileUtils.createFile(filePath); // 指定导出的文件路径 FileOutputStream fos = null; Workbook workbook = null; try { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); ExportParams exportParams = new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), sheetName); exportParams.setMaxNum(1048576); exportParams.setType(ExcelType.XSSF); workbook = ExcelExportUtil.exportBigExcel(exportParams, AudtMorethanVo.class, new IExcelExportServer() { /** * obj 就是下面的10,限制条件 * page 是页数,他是在分页进行文件转换,page每次+1 */ @Override public List<Object> selectListForExcelExport(Object obj, int page) { //page每次加一,当等于obj的值时返回空,代码结束; if (((int) obj) == page) { return null; } List<AudtMorethanVo> audtMorethanVos = null; try { audtMorethanVos = audtFixmedinsService.selectAudtMorethanVoByfixmedinsCodeByPage(fixmedinsCode,null, page, pageSize); } catch (Exception e) { e.printStackTrace(); } return CollectionUtil.isNotEmpty(audtMorethanVos)?Arrays.asList(audtMorethanVos.toArray()):null; } }, pageSize); String fileName = workbook.getSheetAt(0).getSheetName();//sheet名字当文件名称 fos = new FileOutputStream(filePath + "/" + fileName + ".xlsx"); workbook.write(fos); } catch (Exception e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.close(); workbook.close(); } catch (Exception e) { e.printStackTrace(); } } } }
/** * zcc * 创建文件夹; * @param path 路径 */ public static void createFile(String path) { File file = new File(path); //判断文件是否存在; if (!file.exists()) { //创建文件; file.mkdirs(); } }
@Data @ApiModel(value="AudtMorethanVo对象") public class AudtMorethanVo implements Serializable { private static final long serialVersionUID = 1L; /**问题分类ID*/ // @Excel(name = "问题分类ID", width = 15) @ApiModelProperty(value = "问题分类ID") private String proclationid; /**项目*/ @Excel(name = "项目", width = 15) @ApiModelProperty(value = "项目") private String protName; /**问题描述*/ @Excel(name = "问题描述", width = 60) @ApiModelProperty(value = "问题描述") private String probDestion; /**定点医药机构编号*/ @Excel(name = "定点医药机构编号", width = 15) @ApiModelProperty(value = "定点医药机构编号") private String fixmedinsCode; /**定点医药机构名称*/ @Excel(name = "定点医药机构名称", width = 15) @ApiModelProperty(value = "定点医药机构名称") private String fixmedinsName; /**结算ID*/ @Excel(name = "结算ID", width = 15) @ApiModelProperty(value = "结算ID") private String setlId; /**证件号码*/ @Excel(name = "证件号码", width = 15) @ApiModelProperty(value = "证件号码") private String certno; /**人员姓名*/ @Excel(name = "人员姓名", width = 15) @ApiModelProperty(value = "人员姓名") private String psnName; /**性别*/ @Excel(name = "性别", width = 15) @ApiModelProperty(value = "性别") private String gend; /**年龄*/ @Excel(name = "年龄", width = 15) @ApiModelProperty(value = "年龄") private String age; /**住院号*/ @Excel(name = "住院号", width = 15) @ApiModelProperty(value = "住院号") private String iptOtpNo; /**出院科室*/ @Excel(name = "出院科室", width = 15) @ApiModelProperty(value = "出院科室") private String dscgDeptName; /**住院天数*/ @Excel(name = "住院天数", width = 15) @ApiModelProperty(value = "住院天数") private String iptDays; /**入院日期*/ @Excel(name = "入院日期", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "入院日期") private Date begndate; /**出院日期*/ @Excel(name = "出院日期", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "出院日期") private Date enddate; /**医疗类别*/ @Excel(name = "医疗类别", width = 15) @ApiModelProperty(value = "医疗类别") private String medType; /**医保目录名称*/ @Excel(name = "医保目录名称", width = 35) @ApiModelProperty(value = "医保目录名称") private String mxHilistName; /**医保目录编码*/ @Excel(name = "医保目录编码", width = 35) @ApiModelProperty(value = "医保目录编码") private String mxHilistCode; /**收费时间*/ @Excel(name = "收费时间", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "收费时间") private Date mxFeeOcurTime; /**收取数量*/ @Excel(name = "收取数量", width = 15,type = 4) @ApiModelProperty(value = "收取数量") private Integer mxCnt; /**金额*/ @Excel(name = "金额", width = 15,type = 4) @ApiModelProperty(value = "金额") private BigDecimal mxFeeSumamt; /**单价*/ @Excel(name = "单价", width = 15,type = 4) @ApiModelProperty(value = "单价") private Integer mxPric; /**超出数量*/ @Excel(name = "超出数量", width = 15,type = 4) @ApiModelProperty(value = "超出数量") private Integer iptDaysExceed; /**超出金额*/ @Excel(name = "超出金额", width = 15,type = 4) @ApiModelProperty(value = "超出金额") private BigDecimal feeSumamtExceed; /**违规数量*/ @Excel(name = "违规数量", width = 15,type = 4) @ApiModelProperty(value = "违规数量") private Integer mxVitionNumber; /**违规金额*/ @Excel(name = "违规金额", width = 15,type = 4) @ApiModelProperty(value = "违规金额") private BigDecimal mxVitionAmount; }
Mapper:
List<AudtMorethanVo> selectAudtMorethanVoByfixmedinsCodeByPage(@Param("fixmedinsCode") String fixmedinsCode, @Param("protName") String protName,@Param("pageNum") Integer pageNum,@Param("pageSize")Integer pageSize);
XML:
<select id="selectAudtMorethanVoByfixmedinsCodeByPage" resultType="com.frkj.modules.fund.common.vo.AudtMorethanVo"> SELECT * FROM ( SELECT e.*, ROWNUM rnum FROM ( select b.proclation, b.prot_name , b.prob_destion , a.fixmedins_code, a.fixmedins_name, a.setl_id, a.certno, a.psn_name, a.gend, a.age, a.ipt_otp_no, a.dscg_dept_name, a.ipt_days, a.begndate, a.enddate, a.med_type, a.mx_hilist_name, a.mx_hilist_code, a.mx_fee_ocur_time, a.mx_cnt, a.mx_fee_sumamt, a.mx_pric, a.ipt_days_exceed, a.fee_sumamt_exceed, a.mx_vition_number, a.mx_vition_amount from AUDT_Morethan a,AUDT_RU b where a.vtionsueid=b.vtionsueid <if test="fixmedinsCode!=null and fixmedinsCode!=''"> and a.fixmedins_code=#{fixmedinsCode} </if> <if test="protName!=null and protName!=''"> and b.prot_name=#{protName} </if> order by a.vtionsueid,a.setl_id,a.mx_fee_ocur_time ) e WHERE ROWNUM <= #{pageNum} * #{pageSize} ) WHERE rnum > (#{pageNum} - 1) * #{pageSize} </select>
个人电脑测试结果:
标签:java,name,Excel,value,ApiModelProperty,width,private,oracle,easypoi From: https://www.cnblogs.com/yscec/p/18247443