JSP导出excel并支持表输出方法。
市民DownloadFile exportToExcel()抛出异常{
字符串config_value = systemconfigservice.getconfigvaluebykey(出口.xls);
logger.info(派生类型execl表+
xml文件的新文件(新不是(yyyy-mm-dd)。格式(新的日期())+.xls);
writableworkbook WBook = null;writablesheet wsheet = null;
WBook = workbook.createworkbook(文件); / /创建一个Excel文件
长时间= System.currentTimeMillis();
{试
exporttoexcelsearchcondition条件=((exporttoexcelsearchcondition)servletcontext.currentsession()。GetAttribute(条件));
热膨胀系数=新的列表(列表);
如果(条件= = null){
抛出新的异常(会话未能获得查询条件);
其他{ }
根据导出/数据查询的条件
热膨胀系数= catery2contentdao.searchbycondition(condittion.getcateryid(),()condittion.gethsdflag,
Condittion.getExternalContentId(),(),condittion.getcontentname condittion.getcontentid(),(),()condittion.getstate condittion.getsystemid,
Condittion.getCpId(),condittion.getcontenttype(),(),()condittion.getbeforemodifytime condittion.getaftermodifytime);
}
logger.info(开始输出Excel表);
如果(stringutils.isnotblank(config_value)){
int值= numberutils.toint(config_value);
If (CTE! = null cte.size()> 0){
int = 0; /表的数量
int = 0;循环Excel的数目
迭代器它= cte.iterator();
图contentidandcontenttypemap =新HashMap();
图contentidanddurationmap =新HashMap();
对于(contenttoexcel contenttoexcel:CTE){
contentidandcontenttypemap.put(contenttoexcel.getcontentid(),contenttoexcel.getcontenttype());
}
计算时间
contentidanddurationmap = catery2contentdao.getdurationbycontentidmap(contentidandcontenttypemap);
* 1)使用迭代器迭代器与循环相比,迭代和优化迭代效率。
* 2)大量数据影响效率,并寻求大量数据的解决方案。
*添加guohua.yuan 2013-06-08
* /
而(it.hasnext()){
contenttoexcel contenttoexcel = it.next();
如果(i =值= 0){
wsheet = wbook.createsheet(程序源(+(int)(我/价值+ 1)+ )
将字体设置为excel
writablefont wfont =新writablefont(writablefont.arial,10,writablefont.bold,虚假,jxl.format.underlinestyle.no_underline,JXL。格式。颜色。黑色)。
writablecellformat titleformat =新writablecellformat(wfont);
字符串{标题徽标
设置Excel头文件
为(j = 0;J < title.length;j++){
标签exceltitle =新的标签(J,0,标题{,},titleformat);
Wsheet.addCell(exceltitle);
}
k=k+1;
}
Wsheet.addCell(新标签(0,我+ 1值*(k-1),contenttoexcel.getcontentid())));
Wsheet.addCell(新标签(1,我+ 1值*(k-1),contenttoexcel.getcontentname())));
如果(contenttoexcel.getcontenttype()。等于(联赛)){
Wsheet.addCell(新标签(2,我+ 1值*(k-1),电视剧));
} else if(contenttoexcel.getcontenttype()。等于(系列)){
Wsheet.addCell(新标签(2,我+ 1值*(k-1),串行));
} else if(contenttoexcel.getcontenttype()。等于(电影)){
Wsheet.addCell(新标签(2,我+ 1值*(k-1),电影));
}
(如果)(contenttoexcel.gethsdflag = = 1){
Wsheet.addCell(新标签(3,我+ 1值*(k-1),标清));
} else if(contenttoexcel。gethsdflag)(= = 2){
Wsheet.addCell(新标签(3,我+ 1值*(k-1),高清));
} else if(contenttoexcel。gethsdflag)(= = 3){
Wsheet.addCell(新标签(3,我+ 1值*(k-1),超高清));
}
添加长
Wsheet.addCell(新标签(4,我+ 1值*(k-1),contentidanddurationmap.get(contenttoexcel.getcontentid())))))
Wsheet.addCell(新标签(5,我+ 1值*(k-1),contenttoexcel.getkbpersonner())));
Wsheet.addCell(新标签(6,我+ 1值*(k-1),contenttoexcel.getcspersonner())));
Wsheet.addCell(新标签(7,我+ 1值*(k-1),contenttoexcel.getfspersonner())));
Wsheet.addCell(新标签(8,我+ 1值*(k-1),contenttoexcel.getzspersonner())));
如果(contenttoexcel.getmodifytime()= = null){
Wsheet.addCell(新标签(9,我+ 1值*(k-1),)));
其他{ }
Wsheet.addCell(新标签(9,我+ 1值*(k-1)、新(不是yyyy-mm-dd HH:毫米:SS)。格式(contenttoexcel.getmodifytime())))))
}
(如果)(contenttoexcel.getcreatetime = = null){
Wsheet.addCell(新标签(10,我+ 1值*(k-1),)));
其他{ }
Wsheet.addCell(新标签(10,我+ 1值*(k-1)、新(不是yyyy-mm-dd HH:毫米:SS)。格式(contenttoexcel.getcreatetime())))))
}
如果(contenttoexcel.getinstoragetime()= = null){
Wsheet.addCell(新标签(11,我+ 1值*(k-1),)));
其他{ }
Wsheet.addCell(新标签(11,我+ 1值*(k-1)、新(不是yyyy-mm-dd HH:毫米:SS)。格式(contenttoexcel.getinstoragetime())))))
}
如果(stringutils.equals(contenttoexcel.getstatus()(),1500 )){
Wsheet.addCell(新标签(12,我+ 1值*(k-1),成品)));
} else if(stringutils.equals(contenttoexcel.getstatus()(),1700 )){
Wsheet.addCell(新标签(12,我+ 1值*(k-1),发布成功)))
} else if(stringutils.equals(contenttoexcel.getstatus()(),1800 )){
Wsheet.addCell(新标签(12,我+ 1值*(k-1),释放失败)))
} else if(stringutils.equals(contenttoexcel.getstatus()(),1901 )){
Wsheet.addCell(新标签(12,我+ 1值*(k-1),释放)));
}
++;
}
(WBook。写); / /写文件
其他{ }
抛出新异常(没有数据可以引导);
}
其他{ }
抛出新的异常(请检查系统配置管理是否配置导出类型数据);
}
} catch(异常E){
抛出新的异常(e);
最后,{ }
如果(WBook!= NULL){
Wbook.close();
}
}
logger.info(导出Excel耗时:+(System.currentTimeMillis)-(时间)+ );
servletcontext.currentsession()。RemoveAttribute(条件);
返回新的下载文件(file.getname())ReadFrom(文件);
}
希望本文能对jsp程序设计有所帮助。