java 内下载excal2003方法

来源:互联网 发布:安卓版看图软件 编辑:程序博客网 时间:2024/06/05 01:53

java下载excal2003的公共方法

    public static File exportToexcel(List list,HSSFWorkbook workbook,List<TemplateFieldPO> fieldList,TemplateFormPO po,String filenum) throws IOException {        String[] fieldArray =null;        String[] headerArray =null;        IPersistenceService dao = SwordPersistenceUtils.getPersistenceService();        if(po.getIsDisabled().trim().equals("1")){            fieldArray=new String[fieldList.size()+10];            headerArray=new String[fieldList.size()+10];            fieldArray[0]="name";            headerArray[0]="姓名";            fieldArray[1]="dcsid";            headerArray[1]="残疾证号";            fieldArray[2]="nation";            headerArray[2]="民族";            fieldArray[3]="regaddr";            headerArray[3]="户籍地址";            List<Map<String,Object>> listBaseInfo=findBaseInfoList(dao);            for(int i=0;i<listBaseInfo.size();i++){                fieldArray[i+4]=listBaseInfo.get(i).get("dictCode").toString();                headerArray[i+4]=listBaseInfo.get(i).get("dictName").toString();            }            for(int i=10;i<fieldArray.length;i++){                fieldArray[i]=fieldList.get(i-10).getFieldCode();                headerArray[i]=fieldList.get(i-10).getFieldName();            }        }else{            fieldArray=new String[fieldList.size()];            headerArray=new String[fieldList.size()];            for(int i=0;i<fieldArray.length;i++){                fieldArray[i]=fieldList.get(i).getFieldCode();                headerArray[i]=fieldList.get(i).getFieldName();            }        }        HSSFSheet sheet = workbook.createSheet("sheet1");        //第一行,表头        Row row2 = sheet.createRow((short)0);        for(int i=0;i<headerArray.length;i++){            Cell cel2 = row2.createCell((short)i);            cel2.setCellValue(headerArray[i]);        }        //从第二行开始,数据        HSSFCellStyle style = workbook.createCellStyle(); // 样式对象           HSSFFont font = workbook.createFont();        Row row = null;        Cell cel = null;        Map map=null;        Object fieldvalue=null;        String value=null;        ////////////////////GLW        TemplateFieldPO fieldpo=fieldList.get(1);        Map<String,String> baseMap=DownUtil.getBaseDictName(dao);        Map<String,String> TempMap=DownUtil.getItemName(dao, fieldpo.getFormId());        ////////////////////        if(po.getIsDisabled().trim().equals("1")){            for(int i=0;i<list.size();i++){                int j = 0;                row = sheet.createRow((i+1));                map=(Map)list.get(i);                for(int k=0;k<fieldArray.length;k++){                    fieldvalue=map.get(fieldArray[k]);                    if(fieldvalue==null){                        creatCell(workbook,style,font,row,cel,j,"");                    }else{                        if(k<4){                            creatCell(workbook,style,font,row,cel,j,fieldvalue.toString());                        }else if(k<10){                            value=baseMap.get(fieldArray[k].toString()+"_"+fieldvalue.toString());                            creatCell(workbook,style,font,row,cel,j,value);                        }else{                            TemplateFieldPO fieldpo_1=fieldList.get(k-10);                            if(fieldpo_1.getComponentType()!=null && (fieldpo_1.getComponentType().trim().equals("3") || fieldpo_1.getComponentType().trim().equals("4") || fieldpo_1.getComponentType().trim().equals("5"))){                                value=DownUtil.getNameByMap(baseMap, TempMap, fieldpo_1.getDictCode(), fieldvalue.toString());                                creatCell(workbook,style,font,row,cel,j,value);                            }else{                                creatCell(workbook,style,font,row,cel,j,fieldvalue.toString());                            }                        }                    }                    j++;                }           }        }else{            for(int i=0;i<list.size();i++){                int j = 0;                row = sheet.createRow((i+1));                map=(Map)list.get(i);                for(int k=0;k<fieldArray.length;k++){                    fieldvalue=map.get(fieldArray[k]);                    if(fieldvalue==null){                        creatCell(workbook,style,font,row,cel,j,"");                    }else{                        TemplateFieldPO fieldpo_2=fieldList.get(k);                        if(fieldpo_2.getComponentType()!=null && (fieldpo_2.getComponentType().trim().equals("3") || fieldpo_2.getComponentType().trim().equals("4") || fieldpo_2.getComponentType().trim().equals("5"))){                            value=DownUtil.getNameByMap(baseMap, TempMap, fieldpo_2.getDictCode(), fieldvalue.toString());                            creatCell(workbook,style,font,row,cel,j,value);                        }else{                            creatCell(workbook,style,font,row,cel,j,fieldvalue.toString());                        }                    }                    j++;                }           }        }       //将文件保存到指定位置        String filePath = TemplateFormService.class.getClassLoader().getResource("").toString();        int index = filePath.lastIndexOf("WEB-INF");        if(filePath.indexOf("file")<0){            filePath = filePath.substring(1, index);        }else{            filePath = filePath.substring(6, index);        }        String time=new SimpleDateFormat("yyyyMMddhhmmss").format(new Date());        filePath = filePath+"excelFiles/"+po.getFormCode()+time+"_"+filenum+".xls";        File file=new File(filePath);        try{            OutputStream out=new FileOutputStream(file);            workbook.write(out);            out.close();        }catch(Exception e){            e.printStackTrace();        }        return file;    }    ////////////////////////////////////////////    private static List<Map<String,Object>> findBaseInfoList(IPersistenceService dao){        StringBuffer sql=new StringBuffer();        sql.append("select distinct t.dict_code,t.dict_name from base_info_dict_item t");        List<Map<String,Object>> list=dao.findAllBySql(sql.toString());        return list;    }

其中有大量冗余部分 是对数据校验和处理,可以去除,这里放的是源代码 所以不做处理了,这个框架是公司内部框架,有些个别方法晚上是查不到的,同样不做解释

0 0