首页后端开发PHPjava中export方法怎么实现导出excel文件

java中export方法怎么实现导出excel文件

时间2023-07-06 04:17:02发布访客分类PHP浏览448
导读:这篇文章主要介绍了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核实处理,我们将尽快回复您,谢谢合作!

javaexcelexport

若转载请注明出处: java中export方法怎么实现导出excel文件
本文地址: https://pptw.com/jishu/291269.html
怎么使用java的Lambda访问变量 Java Web项目访问不到html文件如何解决

游客 回复需填写必要信息