COMPUTER_LZY

要输就输给追求,要嫁就嫁给幸福

导航

itext生成word文档使用笔记

private static void CreateWord()
 {
  String filePath="D:\\fjs\\oil1out";
  String filePath2="D:\\fjs\\oil2out";
  BufferedReader br;
  BufferedReader br2;
  //定义A4页面大小
  Rectangle rectPageSize = new Rectangle(PageSize.A4);
  rectPageSize = rectPageSize.rotate();
  // 创建word文档,并设置纸张的大小
  Document document = new Document(rectPageSize,80, 80, 50,50); //建立文档
  try {
   //try start
   br = new BufferedReader(new InputStreamReader(
     new FileInputStream(filePath)));
   br2 = new BufferedReader(new InputStreamReader(
     new FileInputStream(filePath2)));
   
  
   RtfWriter2.getInstance(document,new FileOutputStream("E:/word121.doc"));  //创建一个书写器
   document.open();
   
   for(int rainTypeCount=0;rainTypeCount<4;rainTypeCount++)
   {
    //读取下雨类型
    String rainType=rainType(br.readLine());  
    br2.readLine();
    for(int realseTypeCount=0;realseTypeCount<8;realseTypeCount++)
    {
      //生成=======大雨,PWR4
      Paragraph p = new Paragraph(rainType+","+realseType(br.readLine()), new Font(Font.NORMAL, 18, Font.BOLD, new Color(0, 9, 9)) ); 
      br2.readLine();
      p.setAlignment(1);   
      document.add(p);
     
      
      Table table = new Table(14); //14列  
       table.setWidth(Float.parseFloat("100"));
       table.setAlignment(Element.ALIGN_CENTER);
       table.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示
        table.setBorderWidth(1);  
        table.setBorderColor(Color.BLACK);
        table.setPadding(0);   
        table.setSpacing(0);   
     
        // * 添加表头
        Cell cell = new Cell("稳定度");// 单元格
        cell.setHeader(true);
        cell.setVerticalAlignment(Element.ALIGN_CENTER);
      cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setHorizontalAlignment(10);
        cell.setRowspan(2);// 设置表格为2行
        table.addCell(cell);
     
        cell = new Cell("风速级(m/s)");// 单元格
        cell.setVerticalAlignment(Element.ALIGN_CENTER);
       cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setHeader(true);  
        cell.setRowspan(2);// 设置表格为2行
        table.addCell(cell);
       
        cell = new Cell("下风向距离上的OIL1(mSv/h)");// 单元格
        cell.setVerticalAlignment(Element.ALIGN_CENTER);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setHeader(true);  
        cell.setColspan(6);// 设置表格为6列
        table.addCell(cell);
       
        cell = new Cell("下风向距离上的OIL2(mSv/h)");// 单元格
        cell.setVerticalAlignment(Element.ALIGN_CENTER);
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setHeader(true);  
        cell.setColspan(6);// 设置表格为6列
        table.addCell(cell); 
        for(int i=0;i<2;i++)
        {
         cell=new Cell("1km");
         cell.setVerticalAlignment(Element.ALIGN_CENTER);
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);        
         table.addCell(cell);
         cell=new Cell("2km");
         cell.setVerticalAlignment(Element.ALIGN_CENTER);
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         table.addCell(cell);
         cell=new Cell("3.33km");
         cell.setVerticalAlignment(Element.ALIGN_CENTER);
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         table.addCell(cell);
         cell=new Cell("5km");
         cell.setVerticalAlignment(Element.ALIGN_CENTER);
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         table.addCell(cell);
         cell=new Cell("6.67km");
         cell.setVerticalAlignment(Element.ALIGN_CENTER);
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         table.addCell(cell);
         cell=new Cell("10km");
         cell.setVerticalAlignment(Element.ALIGN_CENTER);
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         table.addCell(cell);
        }
       
        table.endHeaders();// 表头结束
       
     // 表格的主体
        br.readLine();   //距离
        br.readLine();   //稳定度     风速          1.00        2.00        3.33        5.00        6.67       10.00
        br2.readLine();  //距离
        br2.readLine();  //稳定度     风速          1.00        2.00        3.33        5.00        6.67       10.00
       
        for(int i=0;i<6;i++)
        {
         for(int j=0;j<9;j++)
         {
        
          String row=br.readLine(); //A            1.0          0.17        0.21        0.21        0.20        0.18        0.15
          String row2= br2.readLine();
          if(j==0)
          {
           cell = new Cell(row.substring(0, 1));  //A
       
           cell.setVerticalAlignment(Element.ALIGN_CENTER);
           cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        
           cell.setRowspan(9);// 当前单元格占两行,纵向跨度
           table.addCell(cell);  
          }
        
          cell = new Cell(windSpeed(j));  //A         
          cell.setVerticalAlignment(Element.ALIGN_CENTER);
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);
          table.addCell(cell);
         
          for(int m =0;m<6;m++)
        {
           cell=new Cell(row.substring(row.length()-(6-m)*12, row.length()-(5-m)*12).trim());
           cell.setVerticalAlignment(Element.ALIGN_CENTER);
           cell.setHorizontalAlignment(Element.ALIGN_CENTER);
           table.addCell(cell);
           //table.addCell(row.substring(row.length()-(6-m)*12, row.length()-(5-m)*12).trim());
        }
        
        for(int n =0;n<6;n++)
        {
          cell=new Cell(row.substring(row2.length()-(6-n)*12, row2.length()-(5-n)*12).trim());
            cell.setVerticalAlignment(Element.ALIGN_CENTER);
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            table.addCell(cell);
        // table.addCell(row2.substring(row2.length()-(6-n)*12, row2.length()-(5-n)*12).trim());
        }
         }
        }       
        document.add(table);
    }    
   }
   br.close();
   br2.close();
   document.close();
   System.out.println("文档已生成!");
   //try end
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (DocumentException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
 }

posted on 2011-04-27 21:33  CANYOUNG  阅读(4075)  评论(0编辑  收藏  举报