itext实现有表格的导出word

public String exportInfo() throws DocumentException, IOException{
//定义A4页面大小
  Rectangle rectPageSize = new Rectangle(PageSize.A4);
//   rectPageSize = rectPageSize.rotate();
  Document doc = new Document(rectPageSize);//创建文档,并设置纸张的大小
  ByteArrayOutputStream baos = new ByteArrayOutputStream();//创建字节输出流
  RtfWriter2.getInstance(doc, baos);//创建书写器与doc对象关联,并通过书写器将文档输入到输入流
  doc.open();//打开文档
  Font titleFont = setFontStyle("华文中宋", 16f, Font.BOLD);//设置标题的格式
  Font headerFont = setFontStyle("华文中宋", 10.5f, Font.BOLD);//设置标题的格式
  Font contextFont = setFontStyle("宋体", 10.5f, Font.NORMAL );//设置正文格式
          //创建标题
  Paragraph title = new Paragraph( "单位基本情况", FontFactory.getFont(FontFactory.HELVETICA_BOLDOBLIQUE, 18, Font.BOLD,new Color(0, 0, 0))); 
  title.setAlignment(Element.ALIGN_CENTER);
  title.setFont(titleFont);
  doc.add(title);
  Table table = new Table(16);//设置表格
  int[] width ={16,4,4,4,4,4,4,12,20,4,4,4,4,4,4,8};
  table.setWidths(width);//设置每列所占比例
  table.setWidth(95);//占页面宽度
  table.setAlignment(Element.ALIGN_CENTER);// 居中显示    
         // table.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示    
          table.setAutoFillEmptyCells(true); // 自动填满    
          table.setBorderWidth(5); // 边框宽度    
          //table.setBorderColor(new Color(0, 125, 255)); // 边框颜色    
          //table.setPadding(5);// 衬距,看效果就知道什么意思了    
          table.setSpacing(0);// 即单元格之间的间距    
          table.setBorder(5);// 边框 
         
          Organization org =organizationService.getInstanceByOrgId(orgId);
          Cell cell = new Cell(new Phrase("01单位名称",headerFont));// 单元格
          cell.setHeader(true);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
//          cell.setHorizontalAlignment(10);
          cell.setRowspan(1);// 设置表格为1行
       
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getOrgName(), contextFont));
          cell.setColspan(15);
          table.addCell(cell);
         
          cell = new Cell(new Phrase("02单位地址",headerFont));
          cell.setHeader(true);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
//          cell.setHorizontalAlignment(10);
          cell.setRowspan(3);// 设置表格为3行
          table.addCell(cell);
          String[] address = org.getOrgRegion().split(",");
         
          cell = new Cell(new Phrase(address[0]+"省(自治区、直辖市)"+"   "+address[1]+"地(区、市、州、盟)"+"\n"+address[2]+"县(区、市、旗)",contextFont));
          cell.setRowspan(3);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          cell.setColspan(15);
          table.addCell(cell);
         
          cell = new Cell( new Phrase("03邮政编码",headerFont));
          cell.setHeader(true);
         //cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
//          cell.setHorizontalAlignment(10);
          cell.setRowspan(1);// 设置表格为1行
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getZipCode(),contextFont));
          cell.setColspan(7);
          table.addCell(cell);
         
          cell = new Cell(new Phrase("04行政区划代码",headerFont));
          //cell.setHeader(true);
          //cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          //cell.setRowspan(1);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getAdmDvsCode()+"",contextFont));
          cell.setColspan(7);
          table.addCell(cell);
         
          cell = new Cell(new Phrase("05单位负责人",headerFont));
          cell.setHeader(true);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(2);
          table.addCell(cell);
         
          cell = new Cell(new Phrase("姓 名",contextFont));
          cell.setColspan(3);
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getOrgRulerName(),contextFont));
          cell.setColspan(4);
          table.addCell(cell);
          cell = new Cell(new Phrase("职务/职称",contextFont));
          cell.setColspan(1);
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getOrgRulerPost(),contextFont));
          cell.setColspan(7);
          table.addCell(cell);
          cell = new Cell(new Phrase("办公电话",contextFont));
          cell.setColspan(3);
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getOrgRulerPhone(),contextFont));
          cell.setColspan(4);
          table.addCell(cell);
          cell = new Cell(new Phrase("电子邮件",contextFont));
          cell.setColspan(1);
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getOrgRulerEmail(),contextFont));
          cell.setColspan(7);
          table.addCell(cell);
        
          cell = new Cell(new Phrase("06责任部门",headerFont));
          cell.setHeader(true);
          //cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(1);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getOrgRespDept(),contextFont));
          cell.setColspan(15);
          table.addCell(cell);
         
          cell = new Cell(new Phrase("07责任部门联系人",headerFont));
          cell.setHeader(true);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(3);
          table.addCell(cell);
          cell = new Cell(new Phrase("姓 名",contextFont));
          cell.setColspan(3);
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getContactPerson(),contextFont));
          cell.setColspan(4);
          table.addCell(cell);
          cell = new Cell(new Phrase("职务/职称",contextFont));
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setColspan(1);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getContactPersonPost(),contextFont));
          cell.setColspan(7);
          table.addCell(cell);
          cell = new Cell(new Phrase("办公电话",contextFont));
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setColspan(3);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getContactPhone(),contextFont));
          cell.setColspan(4);
          table.addCell(cell);
          cell = new Cell(new Phrase("电子邮件",contextFont));
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(2);
          cell.setColspan(1);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getContactEmail(),contextFont));
          cell.setColspan(7);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(2);
          table.addCell(cell);
          cell = new Cell(new Phrase("移动电话",contextFont));
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(1);
          cell.setColspan(3);
          table.addCell(cell);
          cell = new Cell(new Phrase(org.getContactMobile(),contextFont));
          cell.setColspan(4);
          table.addCell(cell);
         
          cell = new Cell(new Phrase("08隶属关系",headerFont));
          cell.setHeader(true);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(3);
          table.addCell(cell);
          String MemberShip = operLogService.selectValueFromDict("super_unit", org.getOrgMemberShip());
          List<Object[]> ol = new ArrayList<Object[]>();
          ol = operLogService.getKeyValueData(null, "super_unit");
         String strms ="";
          for(int i = 0;i<ol.size();i++){
          if(ol.get(i)[1].equals(MemberShip)){
          strms+=  "☑"+ol.get(i)[1]+"  ";
          }else{
          strms+="□"+ol.get(i)[1]+"  ";
          }
          if(i==2){
          strms+="\n";
          }
          }
          cell = new Cell(new Phrase(strms,contextFont));
          cell.setColspan(15);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(3);
          table.addCell(cell);
        
          cell = new Cell(new Phrase("09单位类型",headerFont));
          cell.setHeader(true);
          //cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(1);
          table.addCell(cell);
          String OrgType = operLogService.selectValueFromDict("unit_type", org.getOrgType());
          ol = operLogService.getKeyValueData(null, "unit_type");
          String strType ="";
           for(int i = 0;i<ol.size();i++){
           if(ol.get(i)[1].equals(OrgType)){
         strType+=  "☑"+ol.get(i)[1]+"  ";
           }else{
         strType+="□"+ol.get(i)[1]+"  ";
           }
           }
          cell = new Cell(new Phrase(strType,contextFont));
          cell.setColspan(15);
          table.addCell(cell);
         
          cell = new Cell( new Phrase("10行业类别",headerFont));
          cell.setHeader(true);
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          //cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          cell.setRowspan(1);
          table.addCell(cell);
          String OrgIndSector = operLogService.selectValueFromDict("industry_cat", org.getOrgIndSector());
          ol = operLogService.getKeyValueData(null, "industry_cat");
          String strOis ="";
           for(int i = 0;i<ol.size();i++){
           String blankNum = "";
           String str = ol.get(i)[1].toString();
        if(str.length()==2){
      blankNum=" ";
        }else if(str.length()==4){
      blankNum=" ";
        }else if(str.length()==6){
      blankNum=" ";
        }else if(str.length()==8){
      blankNum="    ";
        }else if(str.length()==9){
      blankNum="  ";
        }
           if(ol.get(i)[1].equals(OrgIndSector)){
          
         strOis+=  "☑"+ol.get(i)[1]+blankNum;
           }else{
         strOis+="□"+ol.get(i)[1]+blankNum;
           }
           if((i+1)%4==0){
         strOis+="\n";
           }
           }
          cell = new Cell(new Phrase(strOis,contextFont));
          cell.setColspan(15);
          table.addCell(cell);
         
        ..............(省略无用)
          doc.add(table);
          doc.close();
          fileInputStream = new ByteArrayInputStream(baos.toByteArray());
          baos.close();
         
          return "exportSuccess";
         
         
}

猜你喜欢

转载自rwjavagbl.iteye.com/blog/1616008