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);
Setcols=this.getInfo(col);
WritableWorkbookworkbook=null;
try{
workbook=Workbook.createWorkbook(os);
WritableSheetsheet=workbook.createSheet(sheetName,0);
for(inti=0;icontent,
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;k0){
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;igetInfo(Stringindexes){
Setset=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程序设计有所帮助。