java实现的导出Excel工具类实例
本文实例讲述了java实现的导出Excel工具类。分享给大家供大家参考,具体如下:
ExcelExportUtil:
packagecom.excel; importjava.io.FileOutputStream; importjava.io.IOException; importjava.io.OutputStream; importjava.util.HashSet; importjava.util.Map; importjava.util.Set; importjava.util.regex.Pattern; importjxl.Workbook; importjxl.write.Label; importjxl.write.Number; importjxl.write.NumberFormat; importjxl.write.WritableCellFormat; importjxl.write.WritableSheet; importjxl.write.WritableWorkbook; importjxl.write.WriteException; importjxl.write.biff.RowsExceededException; /** *生成excel表格 * *@author * */ publicclassExcelExportUtil{ /** *构造器 * */ publicExcelExportUtil(){ } /** *生成具有一定格式excel * *@paramsheetName *sheet名称,默认为sheet1 *@paramnf *数字类型的格式如:jxl.write.NumberFormatnf=new *jxl.write.NumberFormat("#.##");默认无格式 *@paramcontent *二维数组,要生成excel的数据来源 *@param合并项 *每一项的数据格式为0,1,0,2即:把(0,1)和(0,2)合并--->第1列的第一、二个元素合并 *@paramos *excel输出流 *@paramrow *需要水平居中的行,默认居左。以逗号分隔的字符串 *@paramcol *需要水平居中的列,默认居左。以逗号分隔的字符串 */ publicvoidexport(StringsheetName,NumberFormatnf,String[][]content, String[]mergeInfo,OutputStreamos,Stringrow,Stringcol){ if(VerifyUtil.isNullObject(content,os)||VerifyUtil.isNull2DArray(content)){ return; } //默认名称 if(VerifyUtil.isNullObject(sheetName)){ sheetName="sheet1"; } Setrows=this.getInfo(row); Set cols=this.getInfo(col); WritableWorkbookworkbook=null; try{ workbook=Workbook.createWorkbook(os); WritableSheetsheet=workbook.createSheet(sheetName,0); for(inti=0;i content, String[]salary_name_array,StringsheetName,OutputStreamos) { if(VerifyUtil.isNullObject(content,os)||content.size()==0){ return; } //默认名称 if(VerifyUtil.isNullObject(sheetName)){ sheetName="sheet1"; } WritableWorkbookworkbook=null; try{ workbook=Workbook.createWorkbook(os); WritableSheetsheet=workbook.createSheet(sheetName,0); intindex=0; for(intk=0;k 0){ if(index!=0){ index++; } WritableCellFormatformat1=newWritableCellFormat(); format1.setAlignment(jxl.format.Alignment.LEFT); format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); Labellabel1=newLabel(0,index,salary_name_array[k], format1); sheet.addCell(label1); for(inti=0;i getInfo(Stringindexes){ Set set=newHashSet (); if(VerifyUtil.isNullObject(indexes)){ returnset; } String[]temp=indexes.split(",",0); for(Stringstr:temp){ if(isNumeric(str)){ set.add(Integer.parseInt(str)); } } returnset; } /** *判断字符串是否由纯数字组成 * *@paramstr *源字符串 *@returntrue是,false否 */ privatebooleanisNumeric(Stringstr){ if(VerifyUtil.isNullObject(str)){ returnfalse; } Patternpattern=Pattern.compile("[0-9]*"); returnpattern.matcher(str).matches(); } /** *判断字符串是否是数字 * *@paramstr *源字符串 *@returntrue是,false否 */ privatebooleanisNumber(Stringnumber){ //判断参数 if(VerifyUtil.isNullObject(number)){ returnfalse; } //查看是否有小数点 intindex=number.indexOf("."); if(index<0){ returnisNumeric(number); }else{ //如果有多个".",则不是数字 if(number.indexOf(".")!=number.lastIndexOf(".")){ returnfalse; } Stringnum1=number.substring(0,index); Stringnum2=number.substring(index+1); returnisNumeric(num1)&&isNumeric(num2); } } /** *判断合并项内容是否合法 * *@parammergeInfo *合并项每一项的数据格式为0,1,0,2即把(0,1)和(0,2)合并 *@returntrue合法,false非法 */ privatebooleanisMergeInfo(String[]mergeInfo){ if(VerifyUtil.isNull1DArray(mergeInfo)){ returnfalse; }else{ for(Stringstr:mergeInfo){ String[]temp=str.split(","); if(VerifyUtil.isNull1DArray(temp)||temp.length!=4){ returnfalse; }else{ for(Strings:temp){ if(!isNumeric(s)){ returnfalse; } } } } } returntrue; } publicstaticvoidmain(String[]args){ ExcelExportUtilee=newExcelExportUtil(); String[][]content=newString[][]{{"","第一列",null,"第三列"}, {"第一行","aa","2.00","22"},{"第二行","bb","3.01","32"}, {"第三行","cc","4.00","41"}}; try{ OutputStreamos=newFileOutputStream("D:/test2.xls"); //ee.export(null,null,content,null,os); ee.export(null,null,content, newString[]{"0,1,0,2","1,0,3,0"},os,"0,1","0"); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } }
VerifyUtil:
packagecom.excel; importjava.io.OutputStream; importjava.util.Map; importjxl.write.NumberFormat; importjxl.write.WritableSheet; publicclassVerifyUtil{ publicstaticbooleanisNullObject(String[][]content,OutputStreamos){ //TODOAuto-generatedmethodstub if(content!=null&&content.length>0&&os!=null) { returnfalse; } returntrue; } publicstaticbooleanisNull2DArray(String[][]content){ //TODOAuto-generatedmethodstub if(content!=null&&content.length>0) { returnfalse; } returntrue; } publicstaticbooleanisNullObject(NumberFormatnf){ //TODOAuto-generatedmethodstub if(nf!=null) { returnfalse; } returntrue; } publicstaticbooleanisNullObject(StringsheetName){ if(sheetName!=null&&!"".equals(sheetName.trim())) { returnfalse; } returntrue; } publicstaticbooleanisNullObject(Mapcontent, OutputStreamos){ //TODOAuto-generatedmethodstub if(content!=null&&content.size()>0&&os!=null) { returnfalse; } returntrue; } publicstaticbooleanisNull1DArray(String[]mergeInfo){ //TODOAuto-generatedmethodstub if(mergeInfo!=null&&mergeInfo.length>0) { returnfalse; } returntrue; } publicstaticbooleanisNullObject(WritableSheetsheet){ //TODOAuto-generatedmethodstub if(sheet!=null) { returnfalse; } returntrue; } }
更多关于java相关内容感兴趣的读者可查看本站专题:《Java操作Excel技巧总结》、《Java+MySQL数据库程序设计总结》、《Java数据结构与算法教程》、《Java文件与目录操作技巧汇总》及《Java操作DOM节点技巧总结》
希望本文所述对大家java程序设计有所帮助。