zoukankan      html  css  js  c++  java
  • 报表导出功能

    jsp页面中书写的 java代码

    参数 quarter 代表时间日期格式 20161 2016年第一季度

        dptid 部门编号

      1 <%@page contentType="text/html; charset=GBK"%>
      2 <%@page import="java.net.URLEncoder"%>
      3 <%@page import="com.projectcycle.process.document.attachments.FileInfoTools"%>
      4 <%@page import="java.io.File"%>
      5 <%@page import="java.io.FileOutputStream"%>
      6 <%@page import="java.util.*"%>
      7 <%@page import="org.apache.commons.lang.StringUtils"%>
      8 <%@page import="com.projectcycle.business.utils.DBManager"%>
      9 <%@page import="net.sf.json.*"%>
     10 <%@page import="com.projectcycle.second.util.ToolsUtil"%>
     11 <%@page import="com.projectcycle.web.action.UserInfo"%>
     12 <%@page import="com.projectcycle.web.utils.SessionConstant"%>
     13 <%@page import="com.projectcycle.business.utils.DateUtil1"%>
     14 <%@page import="com.projectcycle.business.utils.Tools"%>
     15 <%@page import="java.text.SimpleDateFormat"%>
     16 <%@page import="java.text.DecimalFormat"%>
     17 <%@page import="java.math.BigDecimal"%>
     18 <%@page import="org.apache.poi.hssf.usermodel.*"%>
     19 <%@page import="org.apache.poi.hssf.util.*"%>
     20 <%!
     21     public static void setContent(HSSFCell cell, HSSFCellStyle style,
     22             String content) {
     23         cell.setCellStyle(style);
     24         cell.setCellValue(new HSSFRichTextString(content));
     25 
     26     }
     27 
     28     public static void HcreateCell(HSSFSheet sheet, HSSFRow row,
     29             HSSFWorkbook w, int c, String v, int start_r, int end_r,
     30             int start_c, int end_c) {
     31         try {
     32             HSSFCell cell2 = null;
     33             if (start_c != end_c||start_r!=end_r) {
     34                 sheet.addMergedRegion(new CellRangeAddress(start_r, end_r,start_c, end_c));
     35             }
     36             HSSFCellStyle s=null;
     37             if(start_r==0){
     38                 s = getTitleStyle(w,0);
     39             }else{
     40                 s = getTitleStyle(w,1);
     41             }
     42             cell2 = row.createCell(c);
     43             cell2.setCellStyle(s);
     44             cell2.setCellValue(v);
     45         } catch (Exception e) {
     46             e.printStackTrace();
     47         }
     48     }
     49 
     50     public static HSSFCellStyle getTitleStyle(HSSFWorkbook wb,int i) {
     51         
     52         HSSFCellStyle cellStyle1_2 = wb.createCellStyle();//标题样式
     53         cellStyle1_2.setWrapText(true);
     54         if(i==0){
     55             cellStyle1_2.setFillForegroundColor(HSSFColor.YELLOW.index);
     56         }else{
     57             cellStyle1_2.setFillForegroundColor(HSSFColor.GREY_40_PERCENT.index);
     58         }
     59         cellStyle1_2.setFillPattern(HSSFCellStyle.BORDER_THIN);
     60         cellStyle1_2.setBorderBottom((short) 1);
     61         cellStyle1_2.setBorderLeft((short) 1);
     62         cellStyle1_2.setBorderRight((short) 1);
     63         cellStyle1_2.setBorderTop((short) 1);
     64         cellStyle1_2.setBottomBorderColor(HSSFColor.GREY_80_PERCENT.index);
     65         cellStyle1_2.setLeftBorderColor(HSSFColor.GREY_80_PERCENT.index);
     66         cellStyle1_2.setRightBorderColor(HSSFColor.GREY_80_PERCENT.index);
     67         cellStyle1_2.setTopBorderColor(HSSFColor.GREY_80_PERCENT.index);
     68         cellStyle1_2.setFont(getContentFont(wb));
     69         cellStyle1_2.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中   
     70         cellStyle1_2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
     71         cellStyle1_2.setLocked(true);
     72         return cellStyle1_2;
     73     }
     74     
     75     public static void createCell(HSSFSheet sheet, HSSFRow row,
     76             HSSFWorkbook w,HSSFCellStyle s, int c, Object v, int start_r, int end_r,
     77             int start_c, int end_c) {
     78         try {
     79 
     80             HSSFCell cell2 = null;
     81             if (start_c != end_c||start_r!=end_r) {
     82                 sheet.addMergedRegion(new CellRangeAddress(start_r, end_r,start_c, end_c));
     83             }
     84             cell2 = row.createCell(c);
     85             cell2.setCellStyle(s);
     86             cell2.setCellValue(v.toString());
     87         } catch (Exception e) {
     88             e.printStackTrace();
     89         }
     90     }
     91     
     92     public static void createCellForNum(HSSFSheet sheet, HSSFRow row,
     93             HSSFWorkbook w,HSSFCellStyle s, int c, Double v, int start_r, int end_r,
     94             int start_c, int end_c) {
     95         try {
     96 
     97             HSSFCell cell2 = null;
     98             if (start_c != end_c||start_r!=end_r) {
     99                 sheet.addMergedRegion(new CellRangeAddress(start_r, end_r,start_c, end_c));
    100             }
    101             HSSFDataFormat df = w.createDataFormat();
    102             s.setDataFormat(df.getFormat("##0"));
    103             cell2 = row.createCell(c);
    104             cell2.setCellStyle(s);
    105             cell2.setCellValue(v);
    106         } catch (Exception e) {
    107             e.printStackTrace();
    108         }
    109     }
    110     
    111 
    112     public static HSSFCellStyle setSelfColor(HSSFWorkbook wb) {
    113 
    114         String str = "#FFFFFF";
    115         // 处理把它转换成十六进制并放入一个数
    116         int[] color = new int[3];
    117         color[0] = Integer.parseInt(str.substring(1, 3), 16);
    118         color[1] = Integer.parseInt(str.substring(3, 5), 16);
    119         color[2] = Integer.parseInt(str.substring(5, 7), 16);
    120         // 自定义颜色
    121         HSSFPalette palette = wb.getCustomPalette();
    122         palette.setColorAtIndex(HSSFColor.BLACK.index, (byte) color[0],
    123                 (byte) color[1], (byte) color[2]);
    124         HSSFCellStyle cellStyle = wb.createCellStyle();
    125         cellStyle.setFillForegroundColor((short) 8);
    126         return cellStyle;
    127     }
    128 
    129     public static HSSFCellStyle getCellStyle(HSSFWorkbook wb,int num) {
    130         HSSFCellStyle cellStyle = wb.createCellStyle();
    131         cellStyle.setWrapText(true);
    132         if(num==1){
    133             cellStyle.setFillForegroundColor(HSSFColor.WHITE.index);
    134         }else if(num==2){
    135             cellStyle.setFillForegroundColor(HSSFColor.RED.index);
    136         }else if(num==3){
    137             cellStyle.setFillForegroundColor(HSSFColor.YELLOW.index);
    138         }else if(num==4){
    139             cellStyle.setFillForegroundColor(HSSFColor.GREEN.index);
    140         }
    141         cellStyle.setFillPattern(HSSFCellStyle.BORDER_THIN);
    142         cellStyle.setBorderBottom((short) 1);
    143         cellStyle.setBorderLeft((short) 1);
    144         cellStyle.setBorderRight((short) 1);
    145         cellStyle.setBorderTop((short) 1);
    146         cellStyle.setBottomBorderColor(HSSFColor.GREY_80_PERCENT.index);
    147         cellStyle.setLeftBorderColor(HSSFColor.GREY_80_PERCENT.index);
    148         cellStyle.setRightBorderColor(HSSFColor.GREY_80_PERCENT.index);
    149         cellStyle.setTopBorderColor(HSSFColor.GREY_80_PERCENT.index);
    150         cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中   
    151         cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中
    152         cellStyle.setFont(getContentFont(wb));
    153         cellStyle.setLocked(false);
    154         return cellStyle;
    155     }
    156     public static HSSFCellStyle getCellStyleLock(HSSFWorkbook wb) {
    157         HSSFCellStyle cellStyle = wb.createCellStyle();
    158         cellStyle.setWrapText(true);
    159         cellStyle.setFillForegroundColor(HSSFColor.WHITE.index);
    160         cellStyle.setFillPattern(HSSFCellStyle.BORDER_THIN);
    161         cellStyle.setBorderBottom((short) 1);
    162         cellStyle.setBorderLeft((short) 1);
    163         cellStyle.setBorderRight((short) 1);
    164         cellStyle.setBorderTop((short) 1);
    165         cellStyle.setBottomBorderColor(HSSFColor.GREY_80_PERCENT.index);
    166         cellStyle.setLeftBorderColor(HSSFColor.GREY_80_PERCENT.index);
    167         cellStyle.setRightBorderColor(HSSFColor.GREY_80_PERCENT.index);
    168         cellStyle.setTopBorderColor(HSSFColor.GREY_80_PERCENT.index);
    169         cellStyle.setFont(getContentFont(wb));
    170         cellStyle.setLocked(true);
    171         return cellStyle;
    172     }
    173     public static HSSFFont getContentFont(HSSFWorkbook wb) {
    174         HSSFFont fontStyle = wb.createFont();
    175         fontStyle.setFontName("微软雅黑");
    176         fontStyle.setFontHeightInPoints((short) 9);
    177         fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
    178         fontStyle.setColor(HSSFColor.GREY_80_PERCENT.index);
    179         return fontStyle;
    180     }
    181     public Vector getCardInfo(DBManager dbm,String quarter,String departmentid) throws Exception{
    182         String sql = "select id,quarter from   a_templet where quarter= "+quarter+" and department="+departmentid;
    183         Vector vc = dbm.executeQueryVector3LowerCase(sql);
    184         return vc;
    185     }
    186     public void createSheet(DBManager dbm,HSSFWorkbook w,Vector vt) throws Exception{
    187             Hashtable temp = (Hashtable)vt.get(0);
    188             String id = (String)temp.get("id");
    189             String quarter = (String)temp.get("quarter");
    190             System.out.println("DumpExcel.jsp   id"+id+"quarter:"+quarter);
    191             //查询得到当前模板对应的页签
    192             String sheets = "select a7 from a_templet_col_num where templet_id='"+id+"' group by a7  order by a7 ";
    193             Vector sheetsVc = dbm.executeQueryVector3LowerCase(sheets.toString());
    194             if (sheetsVc != null && sheetsVc.size() > 0) {
    195                 for (int i = 0; i < sheetsVc.size(); i++) {
    196                     Hashtable ht = (Hashtable) sheetsVc.get(i);
    197                     System.out.println("导出的页签:ht"+ht.get("a7"));
    198                     HSSFSheet sheet = w.createSheet(ht.get("a7").toString());
    199                     //写入数据
    200                     wirteSheet(dbm,sheet,w,id,quarter,ht.get("a7").toString());
    201                     
    202                 }
    203             }
    204     }
    205     //创建表头
    206     public void wirteSheet(DBManager dbm,HSSFSheet sheet, HSSFWorkbook w,String templetid,String time,String paraname) throws Exception{
    207         int ji=Integer.parseInt(time.substring(4,5));
    208        int year=Integer.parseInt(time.substring(0,4));
    209         //当前日期
    210        Calendar now = Calendar.getInstance();  
    211        //int month=(now.get(Calendar.MONTH))+1;
    212        int yue=0;
    213        if(ji==3){
    214            ji=3;
    215            yue=7;
    216        }else if(ji==2){
    217            ji=2;
    218            yue=4;
    219        }else if(ji==1){
    220            ji=1;
    221            yue=1;
    222        }else if(ji==4){
    223            ji=4;
    224            yue=10;
    225        }
    226         //结束
    227         List<String> lists=new ArrayList<String>();
    228         List<Map<String,Object>> listcount=new ArrayList<Map<String,Object>>();
    229         List<Map<String, Object>> listOne = new ArrayList<Map<String, Object>>();
    230         List<Map<String, Object>> listTwe = new ArrayList<Map<String, Object>>();
    231         //同样的参数 要分成2个数组
    232         List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
    233         List listvalues=new ArrayList();
    234         List<Map<String,Object>> listvaluesed = new ArrayList<Map<String,Object>>();
    235         List<Map<String,Object>> colorList = new ArrayList<Map<String,Object>>();
    236 
    237         System.out.println("id"+templetid+"quarter:"+time+"---paraname:"+paraname);
    238         //第一列数据
    239         String oneStr = "select t.group_name, count(1) as col,min(order_number)as order_number from a_templet_col_info t where tempid = '"+templetid+"' and flag=1  group by group_name order by order_number";
    240         Vector one = dbm.executeQueryVector3LowerCase(oneStr.toString());
    241         if (one != null && one.size() > 0) {
    242             for (int i = 0; i < one.size()-1; i++) {
    243                 Hashtable ht = (Hashtable) one.get(i);
    244                 
    245                 if(ht.get("group_name")=="数据收集方法"||"数据收集方法".equals(ht.get("group_name"))){
    246                     int av=Integer.parseInt(ht.get("col")+"")-1;
    247                     Hashtable hts=new Hashtable();
    248                     hts.put("group_name", "数据收集方法");
    249                     hts.put("col", av+"");
    250                     listOne.add(hts);
    251                 }else{
    252                     listOne.add(ht);
    253                 }
    254             }
    255         }
    256         //第二列数据
    257         String tweStr = "select show_name,col_name from a_templet_col_info where tempid='"+templetid+"' and flag=1 and col_name not in('a19','a20','a21','a22','a5','a18') order by order_number";
    258         Vector twe = dbm.executeQueryVector3LowerCase(tweStr.toString());
    259         if (twe != null && twe.size() > 0) {
    260             for (int i = 0; i < twe.size(); i++) {
    261                 Hashtable ht = (Hashtable) twe.get(i);
    262                 listTwe.add(ht);
    263             }
    264         }
    265         //配置显示的固定列数
    266         String thrStr = "select count(t.group_name) as col  from a_templet_col_info t where tempid = '"+templetid+"' and flag=1 and col_name not in('a19','a20','a21','a22','a5','a18')  order by t.group_name";
    267         int col_num = dbm.executeQueryInt(thrStr);
    268         String coun="";
    269         String kong="";
    270         int extendCol=0;//统计动态列列数
    271         //得到相同数据有几条 后面就是跨行使用的数据
    272         //如果当前不是第一季的月份 则去除半年和一年收集一次的数据
    273         //if(ji==4){
    274             coun = "select count(*)as counts,a8 from  a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where t2.id='"+templetid+"'  and t1.a7='"+paraname+"' group by a8";
    275             kong=dbm.executeQueryString("select wm_concat(a18) a188 from  a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where t2.id='"+templetid+"'  and t1.a7='"+paraname+"' and t2.status=1");
    276         /*}else if(ji==2){
    277             //一年直接忽略
    278             coun = "select count(*)as counts,a8 from  a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where t2.id='"+templetid+"' and a18 in ('每月一次','每季度一次','每半年一次') group by a8";
    279             kong=dbm.executeQueryString("select wm_concat(a18) a188 from  a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where t2.id='"+templetid+"' and t2.status=1 and a18 in ('每月一次','每季度一次','每半年一次') ");
    280         }else{
    281             //半年和一年直接忽略
    282             coun = "select count(*)as counts,a8 from  a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where t2.id='"+templetid+"' and a18 in ('每月一次','每季度一次') group by a8";
    283             kong=dbm.executeQueryString("select wm_concat(a18) a188 from  a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where t2.id='"+templetid+"' and t2.status=1 and a18 in ('每月一次','每季度一次')");
    284         }*/
    285         if(kong.contains("每月一次")){
    286             Hashtable ht = new Hashtable();
    287             ht.put("show_name",year+"年"+yue+"月");
    288             ht.put("col_name","yue");
    289             listTwe.add(ht);
    290             ht = new Hashtable();
    291             ht.put("show_name",year+"年"+(yue+1)+"月");
    292             ht.put("col_name","oyue");
    293             listTwe.add(ht);
    294             ht = new Hashtable();
    295             ht.put("show_name",year+"年"+(yue+2)+"月");
    296             ht.put("col_name","tyue");
    297             listTwe.add(ht);
    298             extendCol+=3;
    299         }
    300         if(kong.contains("每季度一次")){
    301             Hashtable ht = new Hashtable();
    302             ht.put("show_name",year+"年第"+ji+"季度");
    303             ht.put("col_name","jd");
    304             listTwe.add(ht);
    305             extendCol+=1;
    306         }
    307         if(kong.contains("每半年一次")){
    308             Hashtable ht = new Hashtable();
    309             String sname=ji==2?(year+"年上半年"):(year+"年下半年");
    310             ht.put("show_name",sname);
    311             ht.put("col_name","bn");
    312             listTwe.add(ht);
    313             extendCol+=1;
    314         }
    315         if(kong.contains("每年一次")){
    316             Hashtable ht = new Hashtable();
    317             ht.put("show_name",year+"年");
    318             ht.put("col_name","mn");
    319             listTwe.add(ht);
    320             extendCol+=1;
    321         }
    322         if(listOne.size()>0){
    323             Hashtable h=new Hashtable();
    324             h.put("group_name","数据收集");
    325             h.put("col",extendCol+"");
    326             listOne.add(h);
    327         }
    328         col_num+=extendCol;
    329         //System.out.println("col_num:"+col_num+"extendCol:"+extendCol);
    330         Vector c = dbm.executeQueryVector3LowerCase(coun.toString());
    331         if(c!=null && c.size()>0){
    332             for (int i=0;i<c.size();i++){
    333                 Map ht = (Map)c.get(i);
    334                 listcount.add(ht);
    335                 //System.out.println(ht.get("counts"));
    336             }
    337         }
    338         
    339         String pmoxqrw = "select t1.* from a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where  t2.id='"+templetid+"' and t1.a7='"+paraname+"'  order by t1.a8,t1.a5";
    340         Vector vcr = dbm.executeQueryVector3LowerCase(pmoxqrw.toString());
    341         if(vcr!=null && vcr.size()>0){
    342             for (int i=0;i<vcr.size();i++){
    343                 Hashtable ht = (Hashtable)vcr.get(i);
    344                 listvalues.add(ht.get("id"));
    345                 //把相同的编号和数据插入到ht中
    346                 for(int jj=0;jj<listcount.size();jj++){
    347                     if((listcount.get(jj).get("a8")).equals(ht.get("a8"))){
    348                         ht.put("counts", listcount.get(jj).get("counts"));
    349                     }
    350                 }
    351                 
    352                 //如果当前不是第一季的月份 则去除半年和一年收集一次的数据
    353                 //if(ji==4){
    354                     if(("每季度一次").equals(ht.get("a18"))){
    355                         String jidu=year+"年第"+ji+"季度";
    356                         String jd=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+jidu+"'");
    357                         if(jd==null||jd==""){
    358                             jd="";
    359                         }
    360                         ht.put("jd", jd);
    361                         //背景颜色
    362                         String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+jidu+"'");
    363                         Map<String,Object> map=new HashMap<String,Object>();
    364                         map.put("id", ht.get("id"));
    365                         map.put("jd", jd);
    366                         if(backcolor!=null&&backcolor!=""){
    367                             map.put("backcolor", backcolor);
    368                         }
    369                         colorList.add(map);
    370                     }else if(("每月一次").equals(ht.get("a18"))){
    371                         String y=year+"年"+yue+"月";
    372                         String yuess="";
    373                         try{
    374                             yuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+y+"'");
    375                             if(yuess==null){
    376                                 yuess="";
    377                             }
    378                         }catch(Exception e){
    379                             yuess="";
    380                         }
    381                         ht.put("yue", yuess);
    382                         //背景颜色
    383                         String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+y+"'");
    384                         Map<String,Object> map=new HashMap<String,Object>();
    385                         map.put("id", ht.get("id"));
    386                         map.put("yue", yuess);
    387                         if(backcolor!=null&&backcolor!=""){
    388                             map.put("backcolor", backcolor);
    389                         }
    390                         colorList.add(map);
    391                         
    392                         String yy=year+"年"+(yue+1)+"月";
    393                         String oyuess="";
    394                         try{
    395                             oyuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yy+"'");
    396                             if(oyuess==null){
    397                                 oyuess="";
    398                             }
    399                         }catch(Exception e){
    400                              oyuess="";
    401                         }
    402                         ht.put("oyue", oyuess);
    403                         //背景颜色
    404                         String backcolors=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yy+"'");
    405                         Map<String,Object> maps=new HashMap<String,Object>();
    406                         maps.put("id", ht.get("id"));
    407                         maps.put("oyue", oyuess);
    408                         if(backcolors!=null&&backcolors!=""){
    409                             maps.put("backcolor", backcolors);
    410                         }
    411                         colorList.add(maps);
    412                         
    413                         String yyy=year+"年"+(yue+2)+"月";
    414                         String tyuess="";
    415                         try{
    416                             tyuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yyy+"'");
    417                             if(tyuess==null){
    418                                 tyuess="";
    419                             }
    420                         }catch(Exception e){
    421                             tyuess="";
    422                         }
    423                         ht.put("tyue", tyuess);
    424                         //背景颜色
    425                         String backcolorss=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yyy+"'");
    426                         Map<String,Object> mapss=new HashMap<String,Object>();
    427                         mapss.put("id", ht.get("id"));
    428                         mapss.put("tyue", tyuess);
    429                         if(backcolorss!=null&&backcolorss!=""){
    430                             mapss.put("backcolor", backcolorss);
    431                         }
    432                         colorList.add(mapss);
    433                     }else if(("每半年一次").equals(ht.get("a18"))){
    434                         String sname=ji==2?(year+"年上半年"):(year+"年下半年");
    435                         String bannian=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+sname+"'");
    436                         if(bannian==null||bannian==""){
    437                             bannian="";
    438                         }
    439                         ht.put("bn", bannian);
    440                         //背景颜色
    441                         String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+sname+"'");
    442                         Map<String,Object> map=new HashMap<String,Object>();
    443                         map.put("id", ht.get("id"));
    444                         map.put("bn", bannian);
    445                         if(backcolor!=null&&backcolor!=""){
    446                             map.put("backcolor", backcolor);
    447                         }
    448                         colorList.add(map);
    449                     }else if(("每年一次").equals(ht.get("a18"))){
    450                         String snian=year+"年";
    451                         String mn=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+snian+"'");
    452                         if(mn==null||mn==""){
    453                             mn="";
    454                         }
    455                         ht.put("mn", mn);
    456                         //背景颜色
    457                         String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+snian+"'");
    458                         Map<String,Object> map=new HashMap<String,Object>();
    459                         map.put("id", ht.get("id"));
    460                         map.put("mn", mn);
    461                         if(backcolor!=null&&backcolor!=""){
    462                             map.put("backcolor", backcolor);
    463                         }
    464                         colorList.add(map);
    465                     }
    466                     list.add(ht);
    467                     lists.add(""+ht.get("a18"));
    468                 /*}else if(ji==2){
    469                     //半年和一年直接忽略
    470                     if("每月一次".equals(ht.get("a18"))||"每季度一次".equals(ht.get("a18"))||"每半年一次".equals(ht.get("a18"))){
    471                         if(("每季度一次").equals(ht.get("a18"))){
    472                             String jidu=year+"年第"+ji+"季度";
    473                             String jd=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+jidu+"'");
    474                             if(jd==null||jd==""){
    475                                 jd="";
    476                             }
    477                             ht.put("jd", jd);
    478                             //背景颜色
    479                             String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+jidu+"'");
    480                             Map<String,Object> map=new HashMap<String,Object>();
    481                             map.put("id", ht.get("id"));
    482                             map.put("jd", jd);
    483                             if(backcolor!=null&&backcolor!=""){
    484                                 map.put("backcolor", backcolor);
    485                             }
    486                             colorList.add(map);
    487                         }else if(("每月一次").equals(ht.get("a18"))){
    488                             String y=year+"年"+yue+"月";
    489                             String yuess="";
    490                             try{
    491                                 yuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+y+"'");
    492                                 if(yuess==null){
    493                                     yuess="";
    494                                 }
    495                             }catch(Exception e){
    496                                 yuess="";
    497                             }
    498                             ht.put("yue", yuess);
    499                             //背景颜色
    500                             String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+y+"'");
    501                             Map<String,Object> map=new HashMap<String,Object>();
    502                             map.put("id", ht.get("id"));
    503                             map.put("yue", yuess);
    504                             if(backcolor!=null&&backcolor!=""){
    505                                 map.put("backcolor", backcolor);
    506                             }
    507                             colorList.add(map);
    508                             
    509                             String yy=year+"年"+(yue+1)+"月";
    510                             String oyuess="";
    511                             try{
    512                                 oyuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yy+"'");
    513                                 if(oyuess==null){
    514                                     oyuess="";
    515                                 }
    516                             }catch(Exception e){
    517                                  oyuess="";
    518                             }
    519                             ht.put("oyue", oyuess);
    520                             //背景颜色
    521                             String backcolors=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yy+"'");
    522                             Map<String,Object> maps=new HashMap<String,Object>();
    523                             maps.put("id", ht.get("id"));
    524                             maps.put("oyue", oyuess);
    525                             if(backcolors!=null&&backcolors!=""){
    526                                 maps.put("backcolor", backcolors);
    527                             }
    528                             colorList.add(maps);
    529                             
    530                             String yyy=year+"年"+(yue+2)+"月";
    531                             String tyuess="";
    532                             try{
    533                                 tyuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yyy+"'");
    534                                 if(tyuess==null){
    535                                     tyuess="";
    536                                 }
    537                             }catch(Exception e){
    538                                 tyuess="";
    539                             }
    540                             ht.put("tyue", tyuess);
    541                             //背景颜色
    542                             String backcolorss=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yyy+"'");
    543                             Map<String,Object> mapss=new HashMap<String,Object>();
    544                             mapss.put("id", ht.get("id"));
    545                             mapss.put("tyue", tyuess);
    546                             if(backcolorss!=null&&backcolorss!=""){
    547                                 mapss.put("backcolor", backcolorss);
    548                             }
    549                             colorList.add(mapss);
    550                         }else if(("每半年一次").equals(ht.get("a18"))){
    551                             String sname=ji==2?(year+"年上半年"):(year+"年下半年");
    552                             String bannian=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+sname+"'");
    553                             if(bannian==null||bannian==""){
    554                                 bannian="";
    555                             }
    556                             ht.put("bn", bannian);
    557                             //背景颜色
    558                             String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+sname+"'");
    559                             Map<String,Object> map=new HashMap<String,Object>();
    560                             map.put("id", ht.get("id"));
    561                             map.put("bn", bannian);
    562                             if(backcolor!=null&&backcolor!=""){
    563                                 map.put("backcolor", backcolor);
    564                             }
    565                             colorList.add(map);
    566                             
    567                         }
    568                         list.add(ht);
    569                         lists.add(""+ht.get("a18"));
    570                     }
    571                 }else{
    572                     //一年直接忽略
    573                     if("每月一次".equals(ht.get("a18"))||"每季度一次".equals(ht.get("a18"))){
    574                         if(("每季度一次").equals(ht.get("a18"))){
    575                             String jidu=year+"年第"+ji+"季度";
    576                             String jd=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+jidu+"'");
    577                             if(jd==null||jd=="mn"){
    578                                 jd="";
    579                             }
    580                             ht.put("jd", jd);
    581                             //背景颜色
    582                             String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+jidu+"'");
    583                             Map<String,Object> map=new HashMap<String,Object>();
    584                             map.put("id", ht.get("id"));
    585                             map.put("jd", jd);
    586                             if(backcolor!=null&&backcolor!=""){
    587                                 map.put("backcolor", backcolor);
    588                             }
    589                             colorList.add(map);
    590                         }else if(("每月一次").equals(ht.get("a18"))){
    591                             String y=year+"年"+yue+"月";
    592                             String yuess="";
    593                             try{
    594                                 yuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+y+"'");
    595                                 if(yuess==null){
    596                                     yuess="";
    597                                 }
    598                             }catch(Exception e){
    599                                 yuess="";
    600                             }
    601                             ht.put("yue", yuess);
    602                             //背景颜色
    603                             String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+y+"'");
    604                             Map<String,Object> map=new HashMap<String,Object>();
    605                             map.put("id", ht.get("id"));
    606                             map.put("yue", yuess);
    607                             if(backcolor!=null&&backcolor!=""){
    608                                 map.put("backcolor", backcolor);
    609                             }
    610                             colorList.add(map);
    611                             
    612                             String yy=year+"年"+(yue+1)+"月";
    613                             String oyuess="";
    614                             try{
    615                                 oyuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yy+"'");
    616                                 if(oyuess==null){
    617                                     oyuess="";
    618                                 }
    619                             }catch(Exception e){
    620                                  oyuess="";
    621                             }
    622                             ht.put("oyue", oyuess);
    623                             //背景颜色
    624                             String backcolors=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yy+"'");
    625                             Map<String,Object> maps=new HashMap<String,Object>();
    626                             maps.put("id", ht.get("id"));
    627                             maps.put("oyue", oyuess);
    628                             if(backcolors!=null&&backcolors!=""){
    629                                 maps.put("backcolor", backcolors);
    630                             }
    631                             colorList.add(maps);
    632                             
    633                             String yyy=year+"年"+(yue+2)+"月";
    634                             String tyuess="";
    635                             try{
    636                                 tyuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yyy+"'");
    637                                 if(tyuess==null){
    638                                     tyuess="";
    639                                 }
    640                             }catch(Exception e){
    641                                 tyuess="";
    642                             }
    643                             ht.put("tyue", tyuess);
    644                             //背景颜色
    645                             String backcolorss=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yyy+"'");
    646                             Map<String,Object> mapss=new HashMap<String,Object>();
    647                             mapss.put("id", ht.get("id"));
    648                             mapss.put("tyue", tyuess);
    649                             if(backcolorss!=null&&backcolorss!=""){
    650                                 mapss.put("backcolor", backcolorss);
    651                             }
    652                             colorList.add(mapss);
    653                         }
    654                         list.add(ht);
    655                         lists.add(""+ht.get("a18"));
    656                     }
    657                 }*/
    658             }
    659         }
    660         
    661         //查询前台添加的数据
    662         for(int i=0;i<listvalues.size();i++){
    663             String listStr = "select templet_num_id,write_time,write_value from a_templet_col_values where templet_num_id="+listvalues.get(i);
    664             Vector listv = dbm.executeQueryVector3LowerCase(listStr.toString());
    665             if (listv != null && listv.size() > 0) {
    666                 for (int j = 0; j < listv.size(); j++) {
    667                     Hashtable ht = (Hashtable) listv.get(j);
    668                     //System.out.println("ht----"+ht.get("templet_num_id")+"==="+ht.get("write_time")+"==="+ht.get("write_value"));
    669                     if(("").equals(ht.get("write_value"))||ht.get("write_value")==null){
    670                         ht.put("write_value","录入数据");
    671                     }
    672                     listvaluesed.add(ht);
    673                 }
    674             }
    675         }
    676         //创建表头
    677         HSSFRow row0 = sheet.createRow(0);
    678         HSSFRow row1 = sheet.createRow(1);
    679         for(int j=0;j<col_num;j++){
    680             HSSFCellStyle s = getTitleStyle(w,1);
    681             HSSFCell cell0 = row0.createCell(j);
    682             HSSFCell cell1 = row1.createCell(j);
    683             cell0.setCellStyle(s);
    684             cell1.setCellStyle(s);
    685         }
    686         int startCol=0;
    687         for(int i=0;i<listOne.size();i++){
    688             Hashtable ht = (Hashtable)listOne.get(i);
    689             String group_name = (String)ht.get("group_name");
    690             int colspan =Integer.parseInt((String)ht.get("col"));
    691             HcreateCell(sheet, row0, w, startCol, group_name, 0, 0, startCol, (startCol+colspan-1));
    692             startCol+=colspan;
    693         }
    694         startCol=0;
    695         for(int i=0;i<listTwe.size();i++){
    696             Hashtable ht = (Hashtable)listTwe.get(i);
    697             String show_name = (String)ht.get("show_name");
    698             //System.out.println("i==="+i);
    699             if(i==2||i==4||i==10||i==12){
    700                 sheet.setColumnWidth((short)i, (short)5000);//设置列宽
    701             }
    702             HcreateCell(sheet, row1, w, startCol, show_name, 1, 1, startCol, startCol);
    703             startCol++;
    704         }
    705         //写入数据
    706         HSSFRow row=null;
    707         HSSFCellStyle s = getCellStyle(w,1);
    708         HSSFCellStyle r = getCellStyle(w,2);
    709         HSSFCellStyle y = getCellStyle(w,3);
    710         HSSFCellStyle g = getCellStyle(w,4);
    711         int rowspan=2;
    712         for(int j=0;j<lists.size();j++){
    713             row =sheet.createRow(j+2);
    714             for(int col=0;col<col_num;col++){
    715                 HSSFCell cell = row.createCell(col);    
    716                 cell.setCellStyle(s);
    717             }
    718         }
    719         for(int j=0;j<lists.size();j++){
    720             int nums=0;
    721             for(int k=0;k<j;k++){
    722                 if(list.get(k).get("a8").equals(list.get(j).get("a8"))){ 
    723                     nums+=1; 
    724                 }
    725             }
    726             for(int k=0;k<listTwe.size();k++){
    727                 if(",a1,a2,a3,a4,a8,a10,a6,a9,".indexOf(","+(String)listTwe.get(k).get("col_name")+",")>-1){
    728                     if(nums==0){
    729                         //System.out.println("-------------"+list.get(j).get(listTwe.get(k).get("col_name"))+"---"+listTwe.get(k).get("col_name"));
    730                         if(listTwe.get(k).get("col_name")=="a1"||listTwe.get(k).get("col_name").equals("a1")){
    731                             createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan+Integer.parseInt((String)list.get(j).get("counts"))-1, k, k);
    732                         }else if(listTwe.get(k).get("col_name")=="a2"||listTwe.get(k).get("col_name").equals("a2")){
    733                             createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan+Integer.parseInt((String)list.get(j).get("counts"))-1, k, k);
    734                         }else if(listTwe.get(k).get("col_name")=="a4"||listTwe.get(k).get("col_name").equals("a4")){
    735                             createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan+Integer.parseInt((String)list.get(j).get("counts"))-1, k, k);
    736                         }else{
    737                             createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan+Integer.parseInt((String)list.get(j).get("counts"))-1, k, k);
    738                         }
    739                         
    740                     }
    741                 }else{
    742                     //System.out.println("-------------"+list.get(j).get(listTwe.get(k).get("col_name"))+"---"+listTwe.get(k).get("col_name"));
    743                     if(listTwe.get(k).get("col_name").equals("mn")&&list.get(j).get(listTwe.get(k).get("col_name"))!=null){
    744                         for(int h=0;h<colorList.size();h++){
    745                             if(list.get(j).get("id")==colorList.get(h).get("id")&&list.get(j).get("mn")==colorList.get(h).get("mn")){
    746                                 //System.out.println("输出一年");
    747                                 if(colorList.get(h).get("backcolor")!=null){
    748                                     if(colorList.get(h).get("backcolor")=="red"||colorList.get(h).get("backcolor").equals("red")){
    749                                         createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    750                                     }else if(colorList.get(h).get("backcolor")=="yellow"||colorList.get(h).get("backcolor").equals("yellow")){
    751                                         createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    752                                     }else if(colorList.get(h).get("backcolor")=="green"||colorList.get(h).get("backcolor").equals("green")){
    753                                         createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    754                                     }else if(colorList.get(h).get("backcolor").equals("")||colorList.get(h).get("backcolor")==null){
    755                                         createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    756                                     }
    757                                 }else{
    758                                     createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    759                                 }
    760                             }
    761                         }
    762                     }else if(listTwe.get(k).get("col_name").equals("jd")&&list.get(j).get(listTwe.get(k).get("col_name"))!=null){
    763                         for(int h=0;h<colorList.size();h++){
    764                             if(list.get(j).get("id")==colorList.get(h).get("id")&&list.get(j).get("jd")==colorList.get(h).get("jd")){
    765                                 //System.out.println("输出季度");
    766                                 if(colorList.get(h).get("backcolor")!=null){
    767                                     if(colorList.get(h).get("backcolor")=="red"||colorList.get(h).get("backcolor").equals("red")){
    768                                         createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    769                                     }else if(colorList.get(h).get("backcolor")=="yellow"||colorList.get(h).get("backcolor").equals("yellow")){
    770                                         createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    771                                     }else if(colorList.get(h).get("backcolor")=="green"||colorList.get(h).get("backcolor").equals("green")){
    772                                         createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    773                                     }else if(colorList.get(h).get("backcolor").equals("")||colorList.get(h).get("backcolor")==null){
    774                                         createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    775                                     }
    776                                 }else{
    777                                     createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    778                                 }
    779                             }
    780                         }
    781                     }else if(listTwe.get(k).get("col_name").equals("yue")&&list.get(j).get(listTwe.get(k).get("col_name"))!=null){
    782                         for(int h=0;h<colorList.size();h++){
    783                             if(list.get(j).get("id")==colorList.get(h).get("id")&&list.get(j).get("yue")==colorList.get(h).get("yue")){
    784                                 //System.out.println("输出月");
    785                                 if(colorList.get(h).get("backcolor")!=null){
    786                                     if(colorList.get(h).get("backcolor")=="red"||colorList.get(h).get("backcolor").equals("red")){
    787                                         createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    788                                     }else if(colorList.get(h).get("backcolor")=="yellow"||colorList.get(h).get("backcolor").equals("yellow")){
    789                                         createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    790                                     }else if(colorList.get(h).get("backcolor")=="green"||colorList.get(h).get("backcolor").equals("green")){
    791                                         createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    792                                     }else if(colorList.get(h).get("backcolor").equals("")||colorList.get(h).get("backcolor")==null){
    793                                         createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    794                                     }
    795                                 }else{
    796                                     createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    797                                 }
    798                             }
    799                         }
    800                     }else if(listTwe.get(k).get("col_name").equals("oyue")&&list.get(j).get(listTwe.get(k).get("col_name"))!=null){
    801                         for(int h=0;h<colorList.size();h++){
    802                             if(list.get(j).get("id")==colorList.get(h).get("id")&&list.get(j).get("oyue")==colorList.get(h).get("oyue")){
    803                                 //System.out.println("输出月");
    804                                 if(colorList.get(h).get("backcolor")!=null){
    805                                     if(colorList.get(h).get("backcolor")=="red"||colorList.get(h).get("backcolor").equals("red")){
    806                                         createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    807                                     }else if(colorList.get(h).get("backcolor")=="yellow"||colorList.get(h).get("backcolor").equals("yellow")){
    808                                         createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    809                                     }else if(colorList.get(h).get("backcolor")=="green"||colorList.get(h).get("backcolor").equals("green")){
    810                                         createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    811                                     }else if(colorList.get(h).get("backcolor").equals("")||colorList.get(h).get("backcolor")==null){
    812                                         createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    813                                     }
    814                                 }else{
    815                                     createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    816                                 }
    817                             }
    818                         }
    819                         
    820                     }else if(listTwe.get(k).get("col_name").equals("tyue")&&list.get(j).get(listTwe.get(k).get("col_name"))!=null){
    821                         for(int h=0;h<colorList.size();h++){
    822                             if(list.get(j).get("id")==colorList.get(h).get("id")&&list.get(j).get("tyue")==colorList.get(h).get("tyue")){
    823                                 //System.out.println("输出月");
    824                                 if(colorList.get(h).get("backcolor")!=null){
    825                                     if(colorList.get(h).get("backcolor")=="red"||colorList.get(h).get("backcolor").equals("red")){
    826                                         createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    827                                     }else if(colorList.get(h).get("backcolor")=="yellow"||colorList.get(h).get("backcolor").equals("yellow")){
    828                                         createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    829                                     }else if(colorList.get(h).get("backcolor")=="green"||colorList.get(h).get("backcolor").equals("green")){
    830                                         createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    831                                     }else if(colorList.get(h).get("backcolor").equals("")||colorList.get(h).get("backcolor")==null){
    832                                         createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    833                                     }
    834                                 }else{
    835                                     createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    836                                 }
    837                             }
    838                         }
    839                     }else if(listTwe.get(k).get("col_name").equals("bn")&&list.get(j).get(listTwe.get(k).get("col_name"))!=null){
    840                         for(int h=0;h<colorList.size();h++){
    841                                 if(list.get(j).get("id")==colorList.get(h).get("id")&&list.get(j).get("bn")==colorList.get(h).get("bn")){
    842                                     //System.out.println("输出半年");
    843                                     if(colorList.get(h).get("backcolor")!=null){
    844                                         if(colorList.get(h).get("backcolor")=="red"||colorList.get(h).get("backcolor").equals("red")){
    845                                             createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    846                                         }else if(colorList.get(h).get("backcolor")=="yellow"||colorList.get(h).get("backcolor").equals("yellow")){
    847                                             createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    848                                         }else if(colorList.get(h).get("backcolor")=="green"||colorList.get(h).get("backcolor").equals("green")){
    849                                             createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    850                                         }else if(colorList.get(h).get("backcolor").equals("")||colorList.get(h).get("backcolor")==null){
    851                                             createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    852                                         }
    853                                     }else{
    854                                         createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    855                                     }
    856                                 }
    857                         }
    858                         
    859                     
    860                     }else{
    861                         createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);
    862                     }
    863                     
    864                     
    865                     
    866                     
    867                 }
    868             }
    869             rowspan++;
    870         }
    871         
    872     }
    873 %>
    874 <%
    875     UserInfo userInfo=(UserInfo)request.getSession().getAttribute("userInfo");
    876     String userid=userInfo.getUserID();
    877     String quarter = request.getParameter("quarter");
    878     String dptid = request.getParameter("dptid");
    879     /***********************EXCEL导出部分**************************/
    880     String str3 = FileInfoTools.getSystemFilePath()
    881             + "/documentTemp/";
    882     File file = new File(str3);
    883     if (!file.exists() && !file.isDirectory()) {
    884         file.mkdir();
    885     }
    886     String names = new SimpleDateFormat("yyyyMMddhhmmssSSS").format(new Date());
    887     String ourl = str3 +  names + "_"+userid+".xls";
    888     FileOutputStream fos = null;
    889     String fileName = "";
    890     try {
    891         HSSFWorkbook wb = new HSSFWorkbook();//创建工作薄
    892         fileName = "";
    893         DBManager dbm = new DBManager();
    894         try{
    895             dbm.newConnection();
    896             String str = "select departmentname from dpt_department where departmentid='"+dptid+"'"; //获取唯一id
    897             String dptName = dbm.executeQueryString(str);
    898             fileName=dptName+"部门信息科技关键风险指标清单"+"_"+userid+"_"+names+".xls";
    899             //创建sheet页,并写入内容
    900             createSheet(dbm,wb,getCardInfo(dbm,quarter,dptid));
    901         }catch(Exception e){
    902             e.printStackTrace();
    903         }finally{
    904             dbm.closeConnection();
    905         }
    906         File ff = new File(ourl);
    907         if (ff.exists()) {
    908             ff.delete();
    909         }
    910         fos = new FileOutputStream(ourl);
    911         wb.write(fos);
    912         fos.close();
    913         String u = "/project/system/fileAction.do?filePath=" + URLEncoder.encode(ourl)
    914                 + "&fileName=" + URLEncoder.encode(fileName);
    915         response.sendRedirect(u);
    916     } catch (Exception e) {
    917         e.printStackTrace();
    918     }
    919 %>

    <%@page contentType="text/html; charset=GBK"%><%@page import="java.net.URLEncoder"%><%@page import="com.projectcycle.process.document.attachments.FileInfoTools"%><%@page import="java.io.File"%><%@page import="java.io.FileOutputStream"%><%@page import="java.util.*"%><%@page import="org.apache.commons.lang.StringUtils"%><%@page import="com.projectcycle.business.utils.DBManager"%><%@page import="net.sf.json.*"%><%@page import="com.projectcycle.second.util.ToolsUtil"%><%@page import="com.projectcycle.web.action.UserInfo"%><%@page import="com.projectcycle.web.utils.SessionConstant"%><%@page import="com.projectcycle.business.utils.DateUtil1"%><%@page import="com.projectcycle.business.utils.Tools"%><%@page import="java.text.SimpleDateFormat"%><%@page import="java.text.DecimalFormat"%><%@page import="java.math.BigDecimal"%><%@page import="org.apache.poi.hssf.usermodel.*"%><%@page import="org.apache.poi.hssf.util.*"%><%!    public static void setContent(HSSFCell cell, HSSFCellStyle style,String content) {cell.setCellStyle(style);cell.setCellValue(new HSSFRichTextString(content));
    }
    public static void HcreateCell(HSSFSheet sheet, HSSFRow row,HSSFWorkbook w, int c, String v, int start_r, int end_r,int start_c, int end_c) {try {HSSFCell cell2 = null;if (start_c != end_c||start_r!=end_r) {sheet.addMergedRegion(new CellRangeAddress(start_r, end_r,start_c, end_c));}HSSFCellStyle s=null;if(start_r==0){s = getTitleStyle(w,0);}else{s = getTitleStyle(w,1);}cell2 = row.createCell(c);cell2.setCellStyle(s);cell2.setCellValue(v);} catch (Exception e) {e.printStackTrace();}}
    public static HSSFCellStyle getTitleStyle(HSSFWorkbook wb,int i) {HSSFCellStyle cellStyle1_2 = wb.createCellStyle();//标题样式cellStyle1_2.setWrapText(true);if(i==0){cellStyle1_2.setFillForegroundColor(HSSFColor.YELLOW.index);}else{cellStyle1_2.setFillForegroundColor(HSSFColor.GREY_40_PERCENT.index);}cellStyle1_2.setFillPattern(HSSFCellStyle.BORDER_THIN);cellStyle1_2.setBorderBottom((short) 1);cellStyle1_2.setBorderLeft((short) 1);cellStyle1_2.setBorderRight((short) 1);cellStyle1_2.setBorderTop((short) 1);cellStyle1_2.setBottomBorderColor(HSSFColor.GREY_80_PERCENT.index);cellStyle1_2.setLeftBorderColor(HSSFColor.GREY_80_PERCENT.index);cellStyle1_2.setRightBorderColor(HSSFColor.GREY_80_PERCENT.index);cellStyle1_2.setTopBorderColor(HSSFColor.GREY_80_PERCENT.index);cellStyle1_2.setFont(getContentFont(wb));cellStyle1_2.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中   cellStyle1_2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中cellStyle1_2.setLocked(true);return cellStyle1_2;}public static void createCell(HSSFSheet sheet, HSSFRow row,HSSFWorkbook w,HSSFCellStyle s, int c, Object v, int start_r, int end_r,int start_c, int end_c) {try {
    HSSFCell cell2 = null;if (start_c != end_c||start_r!=end_r) {sheet.addMergedRegion(new CellRangeAddress(start_r, end_r,start_c, end_c));}cell2 = row.createCell(c);cell2.setCellStyle(s);cell2.setCellValue(v.toString());} catch (Exception e) {e.printStackTrace();}}public static void createCellForNum(HSSFSheet sheet, HSSFRow row,HSSFWorkbook w,HSSFCellStyle s, int c, Double v, int start_r, int end_r,int start_c, int end_c) {try {
    HSSFCell cell2 = null;if (start_c != end_c||start_r!=end_r) {sheet.addMergedRegion(new CellRangeAddress(start_r, end_r,start_c, end_c));}HSSFDataFormat df = w.createDataFormat();s.setDataFormat(df.getFormat("##0"));cell2 = row.createCell(c);cell2.setCellStyle(s);cell2.setCellValue(v);} catch (Exception e) {e.printStackTrace();}}
    public static HSSFCellStyle setSelfColor(HSSFWorkbook wb) {
    String str = "#FFFFFF";// 处理把它转换成十六进制并放入一个数int[] color = new int[3];color[0] = Integer.parseInt(str.substring(1, 3), 16);color[1] = Integer.parseInt(str.substring(3, 5), 16);color[2] = Integer.parseInt(str.substring(5, 7), 16);// 自定义颜色HSSFPalette palette = wb.getCustomPalette();palette.setColorAtIndex(HSSFColor.BLACK.index, (byte) color[0],(byte) color[1], (byte) color[2]);HSSFCellStyle cellStyle = wb.createCellStyle();cellStyle.setFillForegroundColor((short) 8);return cellStyle;}
    public static HSSFCellStyle getCellStyle(HSSFWorkbook wb,int num) {HSSFCellStyle cellStyle = wb.createCellStyle();cellStyle.setWrapText(true);if(num==1){cellStyle.setFillForegroundColor(HSSFColor.WHITE.index);}else if(num==2){cellStyle.setFillForegroundColor(HSSFColor.RED.index);}else if(num==3){cellStyle.setFillForegroundColor(HSSFColor.YELLOW.index);}else if(num==4){cellStyle.setFillForegroundColor(HSSFColor.GREEN.index);}cellStyle.setFillPattern(HSSFCellStyle.BORDER_THIN);cellStyle.setBorderBottom((short) 1);cellStyle.setBorderLeft((short) 1);cellStyle.setBorderRight((short) 1);cellStyle.setBorderTop((short) 1);cellStyle.setBottomBorderColor(HSSFColor.GREY_80_PERCENT.index);cellStyle.setLeftBorderColor(HSSFColor.GREY_80_PERCENT.index);cellStyle.setRightBorderColor(HSSFColor.GREY_80_PERCENT.index);cellStyle.setTopBorderColor(HSSFColor.GREY_80_PERCENT.index);cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中   cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 上下居中cellStyle.setFont(getContentFont(wb));cellStyle.setLocked(false);return cellStyle;}public static HSSFCellStyle getCellStyleLock(HSSFWorkbook wb) {HSSFCellStyle cellStyle = wb.createCellStyle();cellStyle.setWrapText(true);cellStyle.setFillForegroundColor(HSSFColor.WHITE.index);cellStyle.setFillPattern(HSSFCellStyle.BORDER_THIN);cellStyle.setBorderBottom((short) 1);cellStyle.setBorderLeft((short) 1);cellStyle.setBorderRight((short) 1);cellStyle.setBorderTop((short) 1);cellStyle.setBottomBorderColor(HSSFColor.GREY_80_PERCENT.index);cellStyle.setLeftBorderColor(HSSFColor.GREY_80_PERCENT.index);cellStyle.setRightBorderColor(HSSFColor.GREY_80_PERCENT.index);cellStyle.setTopBorderColor(HSSFColor.GREY_80_PERCENT.index);cellStyle.setFont(getContentFont(wb));cellStyle.setLocked(true);return cellStyle;}public static HSSFFont getContentFont(HSSFWorkbook wb) {HSSFFont fontStyle = wb.createFont();fontStyle.setFontName("微软雅黑");fontStyle.setFontHeightInPoints((short) 9);fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);fontStyle.setColor(HSSFColor.GREY_80_PERCENT.index);return fontStyle;}public Vector getCardInfo(DBManager dbm,String quarter,String departmentid) throws Exception{String sql = "select id,quarter from   a_templet where quarter= "+quarter+" and department="+departmentid;Vector vc = dbm.executeQueryVector3LowerCase(sql);return vc;}public void createSheet(DBManager dbm,HSSFWorkbook w,Vector vt) throws Exception{Hashtable temp = (Hashtable)vt.get(0);String id = (String)temp.get("id");String quarter = (String)temp.get("quarter");System.out.println("DumpExcel.jsp   id"+id+"quarter:"+quarter);//查询得到当前模板对应的页签String sheets = "select a7 from a_templet_col_num where templet_id='"+id+"' group by a7  order by a7 ";Vector sheetsVc = dbm.executeQueryVector3LowerCase(sheets.toString());if (sheetsVc != null && sheetsVc.size() > 0) {for (int i = 0; i < sheetsVc.size(); i++) {Hashtable ht = (Hashtable) sheetsVc.get(i);System.out.println("导出的页签:ht"+ht.get("a7"));HSSFSheet sheet = w.createSheet(ht.get("a7").toString());//写入数据wirteSheet(dbm,sheet,w,id,quarter,ht.get("a7").toString());}}}//创建表头public void wirteSheet(DBManager dbm,HSSFSheet sheet, HSSFWorkbook w,String templetid,String time,String paraname) throws Exception{int ji=Integer.parseInt(time.substring(4,5));   int year=Integer.parseInt(time.substring(0,4));//当前日期   Calendar now = Calendar.getInstance();     //int month=(now.get(Calendar.MONTH))+1;       int yue=0;       if(ji==3){       ji=3;       yue=7;       }else if(ji==2){       ji=2;       yue=4;       }else if(ji==1){       ji=1;       yue=1;       }else if(ji==4){       ji=4;       yue=10;       }    //结束List<String> lists=new ArrayList<String>();List<Map<String,Object>> listcount=new ArrayList<Map<String,Object>>();List<Map<String, Object>> listOne = new ArrayList<Map<String, Object>>();List<Map<String, Object>> listTwe = new ArrayList<Map<String, Object>>();    //同样的参数 要分成2个数组List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();List listvalues=new ArrayList();List<Map<String,Object>> listvaluesed = new ArrayList<Map<String,Object>>();List<Map<String,Object>> colorList = new ArrayList<Map<String,Object>>();
    System.out.println("id"+templetid+"quarter:"+time+"---paraname:"+paraname);//第一列数据String oneStr = "select t.group_name, count(1) as col,min(order_number)as order_number from a_templet_col_info t where tempid = '"+templetid+"' and flag=1  group by group_name order by order_number";Vector one = dbm.executeQueryVector3LowerCase(oneStr.toString());if (one != null && one.size() > 0) {for (int i = 0; i < one.size()-1; i++) {Hashtable ht = (Hashtable) one.get(i);if(ht.get("group_name")=="数据收集方法"||"数据收集方法".equals(ht.get("group_name"))){int av=Integer.parseInt(ht.get("col")+"")-1;Hashtable hts=new Hashtable();hts.put("group_name", "数据收集方法");hts.put("col", av+"");listOne.add(hts);}else{listOne.add(ht);}}}//第二列数据String tweStr = "select show_name,col_name from a_templet_col_info where tempid='"+templetid+"' and flag=1 and col_name not in('a19','a20','a21','a22','a5','a18') order by order_number";Vector twe = dbm.executeQueryVector3LowerCase(tweStr.toString());if (twe != null && twe.size() > 0) {for (int i = 0; i < twe.size(); i++) {Hashtable ht = (Hashtable) twe.get(i);listTwe.add(ht);}}//配置显示的固定列数String thrStr = "select count(t.group_name) as col  from a_templet_col_info t where tempid = '"+templetid+"' and flag=1 and col_name not in('a19','a20','a21','a22','a5','a18')  order by t.group_name";int col_num = dbm.executeQueryInt(thrStr);String coun="";String kong="";int extendCol=0;//统计动态列列数//得到相同数据有几条 后面就是跨行使用的数据//如果当前不是第一季的月份 则去除半年和一年收集一次的数据//if(ji==4){coun = "select count(*)as counts,a8 from  a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where t2.id='"+templetid+"'  and t1.a7='"+paraname+"' group by a8";kong=dbm.executeQueryString("select wm_concat(a18) a188 from  a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where t2.id='"+templetid+"'  and t1.a7='"+paraname+"' and t2.status=1");/*}else if(ji==2){//一年直接忽略coun = "select count(*)as counts,a8 from  a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where t2.id='"+templetid+"' and a18 in ('每月一次','每季度一次','每半年一次') group by a8";kong=dbm.executeQueryString("select wm_concat(a18) a188 from  a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where t2.id='"+templetid+"' and t2.status=1 and a18 in ('每月一次','每季度一次','每半年一次') ");}else{//半年和一年直接忽略coun = "select count(*)as counts,a8 from  a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where t2.id='"+templetid+"' and a18 in ('每月一次','每季度一次') group by a8";kong=dbm.executeQueryString("select wm_concat(a18) a188 from  a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where t2.id='"+templetid+"' and t2.status=1 and a18 in ('每月一次','每季度一次')");}*/if(kong.contains("每月一次")){Hashtable ht = new Hashtable();ht.put("show_name",year+"年"+yue+"月");ht.put("col_name","yue");listTwe.add(ht);ht = new Hashtable();ht.put("show_name",year+"年"+(yue+1)+"月");ht.put("col_name","oyue");listTwe.add(ht);ht = new Hashtable();ht.put("show_name",year+"年"+(yue+2)+"月");ht.put("col_name","tyue");listTwe.add(ht);extendCol+=3;}if(kong.contains("每季度一次")){Hashtable ht = new Hashtable();ht.put("show_name",year+"年第"+ji+"季度");ht.put("col_name","jd");listTwe.add(ht);extendCol+=1;}if(kong.contains("每半年一次")){Hashtable ht = new Hashtable();String sname=ji==2?(year+"年上半年"):(year+"年下半年");ht.put("show_name",sname);ht.put("col_name","bn");listTwe.add(ht);extendCol+=1;}if(kong.contains("每年一次")){Hashtable ht = new Hashtable();ht.put("show_name",year+"年");ht.put("col_name","mn");listTwe.add(ht);extendCol+=1;}if(listOne.size()>0){Hashtable h=new Hashtable();h.put("group_name","数据收集");h.put("col",extendCol+"");listOne.add(h);}col_num+=extendCol;//System.out.println("col_num:"+col_num+"extendCol:"+extendCol);Vector c = dbm.executeQueryVector3LowerCase(coun.toString());if(c!=null && c.size()>0){for (int i=0;i<c.size();i++){Map ht = (Map)c.get(i);listcount.add(ht);//System.out.println(ht.get("counts"));}}String pmoxqrw = "select t1.* from a_templet_col_num t1 left join a_templet t2 on t1.templet_id=t2.id where  t2.id='"+templetid+"' and t1.a7='"+paraname+"'  order by t1.a8,t1.a5";Vector vcr = dbm.executeQueryVector3LowerCase(pmoxqrw.toString());if(vcr!=null && vcr.size()>0){for (int i=0;i<vcr.size();i++){Hashtable ht = (Hashtable)vcr.get(i);listvalues.add(ht.get("id"));//把相同的编号和数据插入到ht中for(int jj=0;jj<listcount.size();jj++){if((listcount.get(jj).get("a8")).equals(ht.get("a8"))){ht.put("counts", listcount.get(jj).get("counts"));}}//如果当前不是第一季的月份 则去除半年和一年收集一次的数据//if(ji==4){if(("每季度一次").equals(ht.get("a18"))){String jidu=year+"年第"+ji+"季度";String jd=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+jidu+"'");if(jd==null||jd==""){jd="";}ht.put("jd", jd);//背景颜色String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+jidu+"'");Map<String,Object> map=new HashMap<String,Object>();map.put("id", ht.get("id"));map.put("jd", jd);if(backcolor!=null&&backcolor!=""){map.put("backcolor", backcolor);}colorList.add(map);}else if(("每月一次").equals(ht.get("a18"))){String y=year+"年"+yue+"月";String yuess="";try{yuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+y+"'");if(yuess==null){yuess="";}}catch(Exception e){yuess="";}ht.put("yue", yuess);//背景颜色String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+y+"'");Map<String,Object> map=new HashMap<String,Object>();map.put("id", ht.get("id"));map.put("yue", yuess);if(backcolor!=null&&backcolor!=""){map.put("backcolor", backcolor);}colorList.add(map);String yy=year+"年"+(yue+1)+"月";String oyuess="";try{oyuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yy+"'");if(oyuess==null){oyuess="";}}catch(Exception e){ oyuess="";}ht.put("oyue", oyuess);//背景颜色String backcolors=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yy+"'");Map<String,Object> maps=new HashMap<String,Object>();maps.put("id", ht.get("id"));maps.put("oyue", oyuess);if(backcolors!=null&&backcolors!=""){maps.put("backcolor", backcolors);}colorList.add(maps);String yyy=year+"年"+(yue+2)+"月";String tyuess="";try{tyuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yyy+"'");if(tyuess==null){tyuess="";}}catch(Exception e){tyuess="";}ht.put("tyue", tyuess);//背景颜色String backcolorss=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yyy+"'");Map<String,Object> mapss=new HashMap<String,Object>();mapss.put("id", ht.get("id"));mapss.put("tyue", tyuess);if(backcolorss!=null&&backcolorss!=""){mapss.put("backcolor", backcolorss);}colorList.add(mapss);}else if(("每半年一次").equals(ht.get("a18"))){String sname=ji==2?(year+"年上半年"):(year+"年下半年");String bannian=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+sname+"'");if(bannian==null||bannian==""){bannian="";}ht.put("bn", bannian);//背景颜色String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+sname+"'");Map<String,Object> map=new HashMap<String,Object>();map.put("id", ht.get("id"));map.put("bn", bannian);if(backcolor!=null&&backcolor!=""){map.put("backcolor", backcolor);}colorList.add(map);}else if(("每年一次").equals(ht.get("a18"))){String snian=year+"年";String mn=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+snian+"'");if(mn==null||mn==""){mn="";}ht.put("mn", mn);//背景颜色String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+snian+"'");Map<String,Object> map=new HashMap<String,Object>();map.put("id", ht.get("id"));map.put("mn", mn);if(backcolor!=null&&backcolor!=""){map.put("backcolor", backcolor);}colorList.add(map);}list.add(ht);lists.add(""+ht.get("a18"));/*}else if(ji==2){//半年和一年直接忽略if("每月一次".equals(ht.get("a18"))||"每季度一次".equals(ht.get("a18"))||"每半年一次".equals(ht.get("a18"))){if(("每季度一次").equals(ht.get("a18"))){String jidu=year+"年第"+ji+"季度";String jd=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+jidu+"'");if(jd==null||jd==""){jd="";}ht.put("jd", jd);//背景颜色String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+jidu+"'");Map<String,Object> map=new HashMap<String,Object>();map.put("id", ht.get("id"));map.put("jd", jd);if(backcolor!=null&&backcolor!=""){map.put("backcolor", backcolor);}colorList.add(map);}else if(("每月一次").equals(ht.get("a18"))){String y=year+"年"+yue+"月";String yuess="";try{yuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+y+"'");if(yuess==null){yuess="";}}catch(Exception e){yuess="";}ht.put("yue", yuess);//背景颜色String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+y+"'");Map<String,Object> map=new HashMap<String,Object>();map.put("id", ht.get("id"));map.put("yue", yuess);if(backcolor!=null&&backcolor!=""){map.put("backcolor", backcolor);}colorList.add(map);String yy=year+"年"+(yue+1)+"月";String oyuess="";try{oyuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yy+"'");if(oyuess==null){oyuess="";}}catch(Exception e){ oyuess="";}ht.put("oyue", oyuess);//背景颜色String backcolors=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yy+"'");Map<String,Object> maps=new HashMap<String,Object>();maps.put("id", ht.get("id"));maps.put("oyue", oyuess);if(backcolors!=null&&backcolors!=""){maps.put("backcolor", backcolors);}colorList.add(maps);String yyy=year+"年"+(yue+2)+"月";String tyuess="";try{tyuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yyy+"'");if(tyuess==null){tyuess="";}}catch(Exception e){tyuess="";}ht.put("tyue", tyuess);//背景颜色String backcolorss=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yyy+"'");Map<String,Object> mapss=new HashMap<String,Object>();mapss.put("id", ht.get("id"));mapss.put("tyue", tyuess);if(backcolorss!=null&&backcolorss!=""){mapss.put("backcolor", backcolorss);}colorList.add(mapss);}else if(("每半年一次").equals(ht.get("a18"))){String sname=ji==2?(year+"年上半年"):(year+"年下半年");String bannian=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+sname+"'");if(bannian==null||bannian==""){bannian="";}ht.put("bn", bannian);//背景颜色String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+sname+"'");Map<String,Object> map=new HashMap<String,Object>();map.put("id", ht.get("id"));map.put("bn", bannian);if(backcolor!=null&&backcolor!=""){map.put("backcolor", backcolor);}colorList.add(map);}list.add(ht);lists.add(""+ht.get("a18"));}}else{//一年直接忽略if("每月一次".equals(ht.get("a18"))||"每季度一次".equals(ht.get("a18"))){if(("每季度一次").equals(ht.get("a18"))){String jidu=year+"年第"+ji+"季度";String jd=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+jidu+"'");if(jd==null||jd=="mn"){jd="";}ht.put("jd", jd);//背景颜色String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+jidu+"'");Map<String,Object> map=new HashMap<String,Object>();map.put("id", ht.get("id"));map.put("jd", jd);if(backcolor!=null&&backcolor!=""){map.put("backcolor", backcolor);}colorList.add(map);}else if(("每月一次").equals(ht.get("a18"))){String y=year+"年"+yue+"月";String yuess="";try{yuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+y+"'");if(yuess==null){yuess="";}}catch(Exception e){yuess="";}ht.put("yue", yuess);//背景颜色String backcolor=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+y+"'");Map<String,Object> map=new HashMap<String,Object>();map.put("id", ht.get("id"));map.put("yue", yuess);if(backcolor!=null&&backcolor!=""){map.put("backcolor", backcolor);}colorList.add(map);String yy=year+"年"+(yue+1)+"月";String oyuess="";try{oyuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yy+"'");if(oyuess==null){oyuess="";}}catch(Exception e){ oyuess="";}ht.put("oyue", oyuess);//背景颜色String backcolors=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yy+"'");Map<String,Object> maps=new HashMap<String,Object>();maps.put("id", ht.get("id"));maps.put("oyue", oyuess);if(backcolors!=null&&backcolors!=""){maps.put("backcolor", backcolors);}colorList.add(maps);String yyy=year+"年"+(yue+2)+"月";String tyuess="";try{tyuess=dbm.executeQueryString("select write_value from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yyy+"'");if(tyuess==null){tyuess="";}}catch(Exception e){tyuess="";}ht.put("tyue", tyuess);//背景颜色String backcolorss=dbm.executeQueryString("select back_color from a_templet_col_values where templet_num_id='"+ht.get("id")+"' and write_time='"+yyy+"'");Map<String,Object> mapss=new HashMap<String,Object>();mapss.put("id", ht.get("id"));mapss.put("tyue", tyuess);if(backcolorss!=null&&backcolorss!=""){mapss.put("backcolor", backcolorss);}colorList.add(mapss);}list.add(ht);lists.add(""+ht.get("a18"));}}*/}}//查询前台添加的数据for(int i=0;i<listvalues.size();i++){String listStr = "select templet_num_id,write_time,write_value from a_templet_col_values where templet_num_id="+listvalues.get(i);Vector listv = dbm.executeQueryVector3LowerCase(listStr.toString());if (listv != null && listv.size() > 0) {for (int j = 0; j < listv.size(); j++) {Hashtable ht = (Hashtable) listv.get(j);//System.out.println("ht----"+ht.get("templet_num_id")+"==="+ht.get("write_time")+"==="+ht.get("write_value"));if(("").equals(ht.get("write_value"))||ht.get("write_value")==null){ht.put("write_value","录入数据");}listvaluesed.add(ht);}}}//创建表头HSSFRow row0 = sheet.createRow(0);HSSFRow row1 = sheet.createRow(1);for(int j=0;j<col_num;j++){HSSFCellStyle s = getTitleStyle(w,1);HSSFCell cell0 = row0.createCell(j);HSSFCell cell1 = row1.createCell(j);cell0.setCellStyle(s);cell1.setCellStyle(s);}int startCol=0;for(int i=0;i<listOne.size();i++){Hashtable ht = (Hashtable)listOne.get(i);String group_name = (String)ht.get("group_name");int colspan =Integer.parseInt((String)ht.get("col"));HcreateCell(sheet, row0, w, startCol, group_name, 0, 0, startCol, (startCol+colspan-1));startCol+=colspan;}startCol=0;for(int i=0;i<listTwe.size();i++){Hashtable ht = (Hashtable)listTwe.get(i);String show_name = (String)ht.get("show_name");//System.out.println("i==="+i);if(i==2||i==4||i==10||i==12){sheet.setColumnWidth((short)i, (short)5000);//设置列宽}HcreateCell(sheet, row1, w, startCol, show_name, 1, 1, startCol, startCol);startCol++;}//写入数据HSSFRow row=null;HSSFCellStyle s = getCellStyle(w,1);HSSFCellStyle r = getCellStyle(w,2);HSSFCellStyle y = getCellStyle(w,3);HSSFCellStyle g = getCellStyle(w,4);int rowspan=2;for(int j=0;j<lists.size();j++){row =sheet.createRow(j+2);for(int col=0;col<col_num;col++){HSSFCell cell = row.createCell(col);cell.setCellStyle(s);}}for(int j=0;j<lists.size();j++){int nums=0;for(int k=0;k<j;k++){if(list.get(k).get("a8").equals(list.get(j).get("a8"))){ nums+=1; }}for(int k=0;k<listTwe.size();k++){if(",a1,a2,a3,a4,a8,a10,a6,a9,".indexOf(","+(String)listTwe.get(k).get("col_name")+",")>-1){if(nums==0){//System.out.println("-------------"+list.get(j).get(listTwe.get(k).get("col_name"))+"---"+listTwe.get(k).get("col_name"));if(listTwe.get(k).get("col_name")=="a1"||listTwe.get(k).get("col_name").equals("a1")){createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan+Integer.parseInt((String)list.get(j).get("counts"))-1, k, k);}else if(listTwe.get(k).get("col_name")=="a2"||listTwe.get(k).get("col_name").equals("a2")){createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan+Integer.parseInt((String)list.get(j).get("counts"))-1, k, k);}else if(listTwe.get(k).get("col_name")=="a4"||listTwe.get(k).get("col_name").equals("a4")){createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan+Integer.parseInt((String)list.get(j).get("counts"))-1, k, k);}else{createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan+Integer.parseInt((String)list.get(j).get("counts"))-1, k, k);}}}else{//System.out.println("-------------"+list.get(j).get(listTwe.get(k).get("col_name"))+"---"+listTwe.get(k).get("col_name"));if(listTwe.get(k).get("col_name").equals("mn")&&list.get(j).get(listTwe.get(k).get("col_name"))!=null){for(int h=0;h<colorList.size();h++){if(list.get(j).get("id")==colorList.get(h).get("id")&&list.get(j).get("mn")==colorList.get(h).get("mn")){//System.out.println("输出一年");if(colorList.get(h).get("backcolor")!=null){if(colorList.get(h).get("backcolor")=="red"||colorList.get(h).get("backcolor").equals("red")){createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor")=="yellow"||colorList.get(h).get("backcolor").equals("yellow")){createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor")=="green"||colorList.get(h).get("backcolor").equals("green")){createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor").equals("")||colorList.get(h).get("backcolor")==null){createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}else{createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}}}else if(listTwe.get(k).get("col_name").equals("jd")&&list.get(j).get(listTwe.get(k).get("col_name"))!=null){for(int h=0;h<colorList.size();h++){if(list.get(j).get("id")==colorList.get(h).get("id")&&list.get(j).get("jd")==colorList.get(h).get("jd")){//System.out.println("输出季度");if(colorList.get(h).get("backcolor")!=null){if(colorList.get(h).get("backcolor")=="red"||colorList.get(h).get("backcolor").equals("red")){createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor")=="yellow"||colorList.get(h).get("backcolor").equals("yellow")){createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor")=="green"||colorList.get(h).get("backcolor").equals("green")){createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor").equals("")||colorList.get(h).get("backcolor")==null){createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}else{createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}}}else if(listTwe.get(k).get("col_name").equals("yue")&&list.get(j).get(listTwe.get(k).get("col_name"))!=null){for(int h=0;h<colorList.size();h++){if(list.get(j).get("id")==colorList.get(h).get("id")&&list.get(j).get("yue")==colorList.get(h).get("yue")){//System.out.println("输出月");if(colorList.get(h).get("backcolor")!=null){if(colorList.get(h).get("backcolor")=="red"||colorList.get(h).get("backcolor").equals("red")){createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor")=="yellow"||colorList.get(h).get("backcolor").equals("yellow")){createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor")=="green"||colorList.get(h).get("backcolor").equals("green")){createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor").equals("")||colorList.get(h).get("backcolor")==null){createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}else{createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}}}else if(listTwe.get(k).get("col_name").equals("oyue")&&list.get(j).get(listTwe.get(k).get("col_name"))!=null){for(int h=0;h<colorList.size();h++){if(list.get(j).get("id")==colorList.get(h).get("id")&&list.get(j).get("oyue")==colorList.get(h).get("oyue")){//System.out.println("输出月");if(colorList.get(h).get("backcolor")!=null){if(colorList.get(h).get("backcolor")=="red"||colorList.get(h).get("backcolor").equals("red")){createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor")=="yellow"||colorList.get(h).get("backcolor").equals("yellow")){createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor")=="green"||colorList.get(h).get("backcolor").equals("green")){createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor").equals("")||colorList.get(h).get("backcolor")==null){createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}else{createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}}}else if(listTwe.get(k).get("col_name").equals("tyue")&&list.get(j).get(listTwe.get(k).get("col_name"))!=null){for(int h=0;h<colorList.size();h++){if(list.get(j).get("id")==colorList.get(h).get("id")&&list.get(j).get("tyue")==colorList.get(h).get("tyue")){//System.out.println("输出月");if(colorList.get(h).get("backcolor")!=null){if(colorList.get(h).get("backcolor")=="red"||colorList.get(h).get("backcolor").equals("red")){createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor")=="yellow"||colorList.get(h).get("backcolor").equals("yellow")){createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor")=="green"||colorList.get(h).get("backcolor").equals("green")){createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor").equals("")||colorList.get(h).get("backcolor")==null){createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}else{createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}}}else if(listTwe.get(k).get("col_name").equals("bn")&&list.get(j).get(listTwe.get(k).get("col_name"))!=null){for(int h=0;h<colorList.size();h++){if(list.get(j).get("id")==colorList.get(h).get("id")&&list.get(j).get("bn")==colorList.get(h).get("bn")){//System.out.println("输出半年");if(colorList.get(h).get("backcolor")!=null){if(colorList.get(h).get("backcolor")=="red"||colorList.get(h).get("backcolor").equals("red")){createCell(sheet, sheet.getRow(rowspan), w, r, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor")=="yellow"||colorList.get(h).get("backcolor").equals("yellow")){createCell(sheet, sheet.getRow(rowspan), w, y, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor")=="green"||colorList.get(h).get("backcolor").equals("green")){createCell(sheet, sheet.getRow(rowspan), w, g, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}else if(colorList.get(h).get("backcolor").equals("")||colorList.get(h).get("backcolor")==null){createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}else{createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}}}else{createCell(sheet, sheet.getRow(rowspan), w, s, k, list.get(j).get(listTwe.get(k).get("col_name"))==null?"":list.get(j).get(listTwe.get(k).get("col_name")), rowspan, rowspan, k, k);}}}rowspan++;}}%><%UserInfo userInfo=(UserInfo)request.getSession().getAttribute("userInfo");String userid=userInfo.getUserID();String quarter = request.getParameter("quarter");String dptid = request.getParameter("dptid");/***********************EXCEL导出部分**************************/String str3 = FileInfoTools.getSystemFilePath()+ "/documentTemp/";File file = new File(str3);if (!file.exists() && !file.isDirectory()) {file.mkdir();}String names = new SimpleDateFormat("yyyyMMddhhmmssSSS").format(new Date());String ourl = str3 +  names + "_"+userid+".xls";FileOutputStream fos = null;String fileName = "";try {HSSFWorkbook wb = new HSSFWorkbook();//创建工作薄fileName = "";DBManager dbm = new DBManager();try{dbm.newConnection();String str = "select departmentname from dpt_department where departmentid='"+dptid+"'"; //获取唯一idString dptName = dbm.executeQueryString(str);fileName=dptName+"部门信息科技关键风险指标清单"+"_"+userid+"_"+names+".xls";//创建sheet页,并写入内容createSheet(dbm,wb,getCardInfo(dbm,quarter,dptid));}catch(Exception e){e.printStackTrace();}finally{dbm.closeConnection();}File ff = new File(ourl);if (ff.exists()) {ff.delete();}fos = new FileOutputStream(ourl);wb.write(fos);fos.close();String u = "/project/system/fileAction.do?filePath=" + URLEncoder.encode(ourl)+ "&fileName=" + URLEncoder.encode(fileName);response.sendRedirect(u);} catch (Exception e) {e.printStackTrace();}%>

  • 相关阅读:
    使用zabbix监控sql server的发布订阅
    MySQL执行计划
    3.MongoDB恢复探究:为什么oplogReplay参数只设置了日志应用结束时间oplogLimit,而没有设置开始时间?
    面试官看完我手写的单例直接惊呆了!
    故事:坐在我隔壁的小王问我什么是HyperLogLog
    JDK15就要来了,你却还不知道JDK8的新特性!
    不要再问我 in,exists 走不走索引了
    JVM性能调优(4) —— 性能调优工具
    JVM性能调优(3) —— 内存分配和垃圾回收调优
    JVM性能调优(2) —— 垃圾回收器和回收策略
  • 原文地址:https://www.cnblogs.com/huole/p/6077891.html
Copyright © 2011-2022 走看看