java中export方法怎么实现导出excel文件
导读:这篇文章主要介绍了java中export方法怎么实现导出excel文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中export方法怎么实现导出excel文件文章都会有所收获,下面我们一起来看看吧。...
这篇文章主要介绍了java中export方法怎么实现导出excel文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中export方法怎么实现导出excel文件文章都会有所收获,下面我们一起来看看吧。
1.export函数
//导出文件接口
publicStringexport(){
returnthis.myExport(exportList);
}
2.导出列名
privateStringmyExport(ListBusinessDept>
list){
com.bronzesoft.power.tools.json.JSONObjectinfo=newcom.bronzesoft.power.tools.json.JSONObject();
try{
ListString>
headList=newArrayListString>
(Arrays.asList("年","月","部门","部门负责人","经营值","收入","支出","填报工时","标准工时","经营参数"));
Commonutil.export(list,headList,"部门经营总览导出");
info=Commonutil.setInfo(info,"部门经营总览导出");
}
catch(Exceptione){
LogUtil.error(this.getClass().getName()+".exportExcel()",e);
}
returninfo.toString();
}
3.export实现方法
首先,理解一下一个Excel的文件的组织形式,一个Excel文件对应于一个workbook(XSSFWorkbook),一个workbook可以有多个sheet(XSSFSheet)组成,一个sheet是由多个row(XSSFRow)组成,一个row是由多个cell(XSSFCell)组成。
publicstaticT>
booleanexport(ListT>
list,ListString>
headList,StringfileName){
returnmyExport(list,headList,fileName,com.bronzesoft.rdm.platform.util.Constants.PATH+com.bronzesoft.power.platform.Constants.TEMPFOLDER_DIR);
}
//将list导出为excel,文件名为fileName
publicstaticT>
booleanmyExport(ListT>
list,ListString>
headList,StringfileName,Stringpath){
try{
if(!checkListAndHead(list,headList)){
LogUtil.info("head的长度有问题,导出的文件不正确");
}
Filefile=newFile(path+File.separator+fileName+".xlsx");
if(!file.exists()){
file.createNewFile();
}
//创建对应excel文件,存储路径path待确定
XSSFWorkbookworkBook=newXSSFWorkbook();
//创建一个excel的sheet页
XSSFSheetsheet=workBook.createSheet(fileName);
XSSFRowrow=null;
XSSFCellcell=null;
MapString,CellStyle>
styles=StyleUtil.createStyles(workBook);
//表头样式
CellStyleheadCenterIndex=styles.get("headCenter");
//列的样式居中,背景颜色为白色
CellStylecenter=styles.get("centerWhite");
row=sheet.createRow(0);
//表头数据
for(inti=0;
iheadList.size();
i++){
//创建列
cell=row.createCell(i);
//设置列的value
cell.setCellValue(headList.get(i));
//设置列的样式
cell.setCellStyle(headCenterIndex);
}
//表格数据
//写入表格数据
StringcodeName="";
intrownum=1;
Tobj=null;
for(inti=0;
ilist.size();
i++){
obj=list.get(i);
if(null!=obj){
Field[]fields=obj.getClass().getDeclaredFields();
row=sheet.createRow(rownum);
for(intj=0;
jfields.length;
j++){
fields[j].setAccessible(true);
codeName=String.valueOf(fields[j].get(obj));
//创建第j列
cell=row.createCell(j);
cell.setCellValue(Commonutil.getStringVal(codeName));
cell.setCellStyle(center);
}
}
rownum++;
}
////i代表列,设置列的宽度
//for(inti=0;
iheadList.size();
i++){
//if(i==0){
//sheet.setColumnWidth(i,2000);
//}
elseif(i==1||i==3){
//sheet.setColumnWidth(i,6000);
//}
else{
//sheet.setColumnWidth(i,4000);
//}
//}
//将文件写到临时目录
FileOutputStreamout=newFileOutputStream(file);
workBook.write(out);
}
catch(Exceptione){
LogUtil.error(fileName+"export失败");
}
returntrue;
}
//检查head的size是否符合规范
publicstaticT>
booleancheckListAndHead(ListT>
list,ListString>
headList){
if(list.size()>
0){
Tt=list.get(0);
if(getColumnCount(t)!=headList.size()){
LogUtil.info("head的长度有问题");
returnfalse;
}
}
returntrue;
}
//获取一个对象成员变量的个数
publicstaticT>
intgetColumnCount(Tt){
Field[]fields=t.getClass().getDeclaredFields();
intcount=fields.length;
returncount;
}
4.前端对接
publicstaticJSONObjectsetInfo(JSONObjectinfo,StringfileName)throwsException{
Storages=Commonutil.getDefaultStorage();
info.put("port",String.valueOf(s.getPort()));
info.put("dirAddress",Base64Util.encode(com.bronzesoft.rdm.platform.util.Constants.PATH));
info.put("address",Base64Util.encode(com.bronzesoft.power.platform.Constants.TEMPFOLDER_DIR+File.separator+fileName+".xlsx"));
info.put("name",Base64Util.encode(fileName));
info.put("extendName","xlsx");
returninfo;
}
5.前端代码
functiondoExport(){
synAjax.tabCall("com.bronzesoft.rdm.SeDeptTotalTab","export",null,function(data){
doDownload(data);
}
);
}
functiondoDownload(data){
console.log('data',data)
r=eval('('+data+')');
$("#_file_dir").val(r.dirAddress);
$("#_file_address").val(r.address);
$("#_file_name").val(r.name);
$("#_file_extname").val(r.extendName);
if($.browser.safari){
$("#_file_downform").attr("target","");
}
varservlet=powerPath+"download";
$("#_file_downform").attr("action",servlet).submit();
}
关于“java中export方法怎么实现导出excel文件”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“java中export方法怎么实现导出excel文件”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: java中export方法怎么实现导出excel文件
本文地址: https://pptw.com/jishu/291269.html
