隨筆-153  評論-235  文章-19  trackbacks-0
                項目中要寫excel,把這個例子寫出來,以后可以看。

          1.寫excel類
          package net.blogjava.chenlb;

          import java.io.IOException;
          import java.io.OutputStream;
          import java.util.List;

          import jxl.Workbook;
          import jxl.write.Label;
          import jxl.write.WritableSheet;
          import jxl.write.WritableWorkbook;
          import jxl.write.WriteException;
          import jxl.write.biff.RowsExceededException;

          /**
           * Jxl 的 Excel寫數(shù)據(jù)器.
           * 
          @author chenlb 2007-10-29 上午10:39:31
           
          */
          public class JxlExcelWriter {
              
              
          /**
               * 
          @param datas 封裝著Object[]的列表, 一般是String內(nèi)容.
               * 
          @param title 每個sheet里的標題.
               
          */
              
          public void writeExcel(OutputStream out, List datas, String[] title) {
                  
          if(datas == null) {
                      
          throw new IllegalArgumentException("寫excel流需要List參數(shù)!");
                  }
                  
          try {
                      WritableWorkbook workbook 
          = Workbook.createWorkbook(out);
                      WritableSheet ws 
          = workbook.createSheet("sheet 1"0);
                      
          int rowNum = 0;    //要寫的行
                      if(title != null) {
                          putRow(ws, 
          0, title);//壓入標題
                          rowNum = 1;
                      }
                      
          for(int i=0; i<datas.size(); i++, rowNum++) {//寫sheet
                          Object[] cells = (Object[]) datas.get(i);
                          putRow(ws, rowNum, cells);    
          //壓一行到sheet
                      }
                      
                      workbook.write();
                      workbook.close();    
          //一定要關(guān)閉, 否則沒有保存Excel
                  } catch (RowsExceededException e) {
                      System.out.println(
          "jxl write RowsExceededException: "+e.getMessage());
                  } 
          catch (WriteException e) {
                      System.out.println(
          "jxl write WriteException: "+e.getMessage());
                  } 
          catch (IOException e) {
                      System.out.println(
          "jxl write file i/o exception!, cause by: "+e.getMessage());
                  }
              }

              
          private void putRow(WritableSheet ws, int rowNum, Object[] cells) throws RowsExceededException, WriteException {
                  
          for(int j=0; j<cells.length; j++) {//寫一行
                      Label cell = new Label(j, rowNum, ""+cells[j]);
                      ws.addCell(cell);
                  }
              }
          }

          2.使用
              public void testWriteExcel() {
                  List datas 
          = new ArrayList();
                  String[] data 
          = {"1""chenlb"};
                  datas.add(data);
                  
          try {
                      OutputStream out 
          = new FileOutputStream(new File("doc/chenlb.blogjava.net.xls"));
                      JxlExcelWriter jxlExcelWriter 
          = new JxlExcelWriter();
                      jxlExcelWriter.writeExcel(out, datas, 
          new String[] {"Id""name"});
                      out.close();
                  } 
          catch (FileNotFoundException e) {
                      
          // TODO Auto-generated catch block
                      e.printStackTrace();
                  } 
          catch (IOException e) {
                      
          // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
                  
              }

          posted on 2007-10-29 10:52 流浪汗 閱讀(5918) 評論(1)  編輯  收藏 所屬分類: JAVA/J2EE

          評論:
          # re: jxl 寫 excel 2012-03-31 14:46 | 大狗
          寫的非常好啊,很有用,內(nèi)容簡練,不像網(wǎng)上別的例子寫了一大堆冗余的東西。  回復  更多評論
            
          主站蜘蛛池模板: 萨嘎县| 普陀区| 陆河县| 广德县| 霍城县| 关岭| 营口市| 梅州市| 金堂县| 高清| 大城县| 德庆县| 凭祥市| 神农架林区| 西昌市| 神木县| 黄龙县| 青铜峡市| 宾川县| 冷水江市| 夏津县| 襄城县| 将乐县| 永仁县| 双峰县| 运城市| 天柱县| 万年县| 波密县| 安图县| 玛沁县| 凉城县| 宜章县| 柞水县| 客服| 宝山区| 北安市| 鹰潭市| 衢州市| 玉环县| 绥化市|