欢迎来到天天文库
浏览记录
ID:47709870
大小:104.00 KB
页数:14页
时间:2019-10-29
《JAVA POI通用工具类》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JAVAPOI数据导入导出工具类1.Exception处理publicclassExcelExceptionextendsException{publicExcelException(){//TODOAuto-generatedconstructorstub}publicExcelException(Stringmessage){super(message);//TODOAuto-generatedconstructorstub}publicExcelException(Throwablecause){super(
2、cause);//TODOAuto-generatedconstructorstub}publicExcelException(Stringmessage,Throwablecause){super(message,cause);//TODOAuto-generatedconstructorstub}}2.POI核心处理/***@author:SUNZK-QQ:1131341075*@Date:2018-8-23下午9:13:21*@Comments:导入导出Excel工具类*@Version:1.0.0*/pub
3、licclassExcelUtil{/***@MethodName:listToExcel*@Description:导出Excel(可以导出到本地文件系统,也可以导出到浏览器,可自定义工作表大小)*@paramlist数据源*@paramfieldMap类的英文属性和Excel中的中文列名的对应关系*如果需要的是引用对象的属性,则英文属性使用类似于EL表达式的格式*如:list中存放的都是student,student中又有college属性,而我们需要学院名称,则可以这样写*fieldMap.put("coll
4、ege.collegeName","学院名称")*@paramsheetName工作表的名称*@paramsheetSize每个工作表中记录的最大个数*@paramout导出流*@throwsExcelException*/publicstaticvoidlistToExcel(Listlist,LinkedHashMapfieldMap,StringsheetName,intsheetSize,OutputStreamout)throwsExcelException{if
5、(list.size()==0
6、
7、list==null){thrownewExcelException("数据源中没有任何数据");}if(sheetSize>65535
8、
9、sheetSize<1){sheetSize=65535;}//创建工作簿并发送到OutputStream指定的地方WritableWorkbookwwb;try{wwb=Workbook.createWorkbook(out);//因为2003的Excel一个工作表最多可以有65536条记录,除去列头剩下65535条//所以如果记录太多,需要
10、放到多个工作表中,其实就是个分页的过程//1.计算一共有多少个工作表doublesheetNum=Math.ceil(list.size()/newInteger(sheetSize).doubleValue());//2.创建相应的工作表,并向其中填充数据for(inti=0;i11、Map,0,list.size()-1);//有多个工作表的情况}else{WritableSheetsheet=wwb.createSheet(sheetName+(i+1),i);//获取开始索引和结束索引intfirstIndex=i*sheetSize;intlastIndex=(i+1)*sheetSize-1>list.size()-1?list.size()-1:(i+1)*sheetSize-1;//填充工作表fillSheet(sheet,list,fieldMap,firstIndex,last12、Index);}}wwb.write();wwb.close();}catch(Exceptione){e.printStackTrace();//如果是ExcelException,则直接抛出if(einstanceofExcelException){throw(ExcelException)e;//否则将其它异常包装成ExcelException再抛出}
11、Map,0,list.size()-1);//有多个工作表的情况}else{WritableSheetsheet=wwb.createSheet(sheetName+(i+1),i);//获取开始索引和结束索引intfirstIndex=i*sheetSize;intlastIndex=(i+1)*sheetSize-1>list.size()-1?list.size()-1:(i+1)*sheetSize-1;//填充工作表fillSheet(sheet,list,fieldMap,firstIndex,last
12、Index);}}wwb.write();wwb.close();}catch(Exceptione){e.printStackTrace();//如果是ExcelException,则直接抛出if(einstanceofExcelException){throw(ExcelException)e;//否则将其它异常包装成ExcelException再抛出}
此文档下载收益归作者所有