Java使用excel工具类导出对象功能示例
本文实例讲述了Java使用excel工具类导出对象功能。分享给大家供大家参考,具体如下:
packagecom.gcloud.common; importorg.apache.poi.ss.usermodel.Cell; importorg.apache.poi.ss.usermodel.Row; importorg.apache.poi.ss.usermodel.Sheet; importorg.apache.poi.xssf.streaming.SXSSFSheet; importorg.apache.poi.xssf.streaming.SXSSFWorkbook; importjava.io.FileOutputStream; importjava.lang.reflect.Method; importjava.util.ArrayList; importjava.util.List; /** *Createdbycharlinon2017/9/7. */ publicclassExcelExportUtil{ //1、定义工作表 privateSXSSFWorkbookworkbook; //2、定义sheet privateSheetsheet; //3、定义保存在内存中的数量,-1表示手动控制 privateintflushRows; /** *4、导出文件行数 */ privateintrowNum; /** *5、导出文件列数 */ privateintcolNum; /** *6、导出文件的存放路径 */ privateStringfilePath; /** *7、下载导出文件的路径 */ privateStringfileWebPath; /** *8、文件名称前缀 */ privateStringfilePrefix; /** *9、导出文件全路径 */ privateStringfileAllPath; /** *10、导出文件列标题 */ privateListfieldNames; /** *11、导出文件每列代码,用于反射获取对象属性值 */ privateList fieldCodes; //---构造方法----------------------------------------- publicExcelExportUtil(){ } publicExcelExportUtil(SXSSFWorkbookworkbook){ this.workbook=workbook; } publicstaticExcelExportUtilstart(StringfilePath,StringfileWebPath,StringfilePrefix,List fieldNames,List fieldCodes,intflushRows)throwsException{ ExcelExportUtilexcelExportUtil=newExcelExportUtil(); excelExportUtil.setFilePath(filePath); excelExportUtil.setFileWebPath(fileWebPath); excelExportUtil.setFilePrefix(filePrefix); excelExportUtil.setFieldNames(fieldNames); excelExportUtil.setFieldCodes(fieldCodes); //设置输出行数 excelExportUtil.setWorkbook(newSXSSFWorkbook(flushRows)); //设置sheet excelExportUtil.setSheet(excelExportUtil.getWorkbook().createSheet()); excelExportUtil.writeTitles(); returnexcelExportUtil; } /** *创建标题 * *@throwsException */ publicvoidwriteTitles()throwsException{ rowNum=0; colNum=fieldNames.size(); //创建行 Rowrow=sheet.createRow(rowNum); //在每列第一行输出标题 for(inti=0;i datalist)throwsException{ rowNum++; Rowrow=sheet.createRow(rowNum); intdataSize=datalist.size(); for(inti=0;i i?datalist.get(i):""); } } /** *手动刷新方法,如果flushRows为-1则需要使用此方法手动刷新内存 *@paramflushNum *@throwsException */ publicvoidflush(intflushNum)throwsException{ ((SXSSFSheet)sheet).flushRows(flushNum); } /** *导出文件 *@return *@throwsException */ publicStringexportFile()throwsException{ StringfileName=filePrefix+"_"+DateUtil.getCurrentTimeFileName()+".xlsx"; FileOutputStreamfos=newFileOutputStream(filePath+fileName); workbook.write(fos); fos.close(); setFileAllPath(fileWebPath+fileName); returnfileWebPath+fileName; } /** *导出excel通用方法 *@paramfield *@parampath *@paramwebpath *@paramfilePrefix *@paramdatas *@paramflushRows *@return *@throwsException */ publicExcelExportUtilexcelExport(Stringfield,Stringpath,Stringwebpath,StringfilePrefix,Listdatas,intflushRows)throwsException{ //导出字段代码和名称 String[]fieldArr=field.split(","); //获取导出字段名称 List fieldNames=newArrayList (); //获取导出字段代码 List fieldCodes=newArrayList (); for(inti=0;i getFieldNames(){ returnfieldNames; } publicvoidsetFieldNames(List fieldNames){ this.fieldNames=fieldNames; } publicList getFieldCodes(){ returnfieldCodes; } publicvoidsetFieldCodes(List fieldCodes){ this.fieldCodes=fieldCodes; } }
更多关于java相关内容感兴趣的读者可查看本站专题:《Java操作Excel技巧总结》、《Java+MySQL数据库程序设计总结》、《Java数据结构与算法教程》、《Java文件与目录操作技巧汇总》及《Java操作DOM节点技巧总结》
希望本文所述对大家java程序设计有所帮助。