千里冰封
          JAVA 濃香四溢
          posts - 151,comments - 2801,trackbacks - 0

          眾所周知,EXCEL是微軟的office套件里的一個(gè)產(chǎn)品,使用比較廣泛,由于微軟產(chǎn)品的特殊性,JAVA標(biāo)準(zhǔn)

          庫(kù)里面并沒(méi)有提供操作EXCEL文檔的類(lèi),可是在程序開(kāi)發(fā)過(guò)程中,如果能將數(shù)據(jù)輸出成一個(gè)電子表格的形式,

          那將有利于用戶(hù)分析和查看數(shù)據(jù).
             雖然標(biāo)準(zhǔn)類(lèi)庫(kù)沒(méi)有提供操作方法,但是得益于JAVA是開(kāi)源的,所以我們可以找到第三方的開(kāi)源的類(lèi)庫(kù)來(lái)

          進(jìn)行EXCEL的讀寫(xiě)操作.我們選用apache的POI庫(kù)來(lái)進(jìn)行EXCEL的操作.
             在POI里面,它把很多EXCEL里面的元素都對(duì)象化了,很符合的JAVA的編程風(fēng)格.
             在使用POI之前,我們得下載一個(gè)POI的庫(kù),我們可以去apache的網(wǎng)站上去下載,目前最新的版本是3.0.1,

          下載后,把它加入到 classpath中就可以使用它了.
            下面我們就來(lái)看一下最簡(jiǎn)單的一個(gè)例子,生成我們第一個(gè)EXCEL文檔.

          /*
           * Test2.java
           *
           * Created on 2007年9月12日, 上午9:18
           *
           * To change this template, choose Tools | Template Manager
           * and open the template in the editor.
           
          */

          package test1;

          import java.io.FileOutputStream;
          import org.apache.poi.hssf.usermodel.HSSFCell;
          import org.apache.poi.hssf.usermodel.HSSFCellStyle;
          import org.apache.poi.hssf.usermodel.HSSFFont;
          import org.apache.poi.hssf.usermodel.HSSFRichTextString;
          import org.apache.poi.hssf.usermodel.HSSFRow;
          import org.apache.poi.hssf.usermodel.HSSFSheet;
          import org.apache.poi.hssf.usermodel.HSSFWorkbook;
          import org.apache.poi.hssf.util.HSSFColor;

          /**
           *
           * 
          @author hadeslee
           
          */
          public class Test2{
              
              
          /** Creates a new instance of Test2 */
              
          public Test2() {
              }
              
          public static void main(String[] args)throws Exception {
                  
          //聲明一個(gè)工作薄
                  HSSFWorkbook wb=new HSSFWorkbook();
                  
          //生成一個(gè)表格
                  HSSFSheet sheet=wb.createSheet("表格1");
                  
          //生成一個(gè)列
                  HSSFRow row=sheet.createRow(0);
                  
          //生成一個(gè)樣式
                  HSSFCellStyle style=wb.createCellStyle();
                  
          //設(shè)置這些樣式
                  style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
                  style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
                  style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
                  style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
                  style.setBorderRight(HSSFCellStyle.BORDER_THIN);
                  style.setBorderTop(HSSFCellStyle.BORDER_THIN);
                  style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
                  
          //生成一個(gè)字體
                  HSSFFont font=wb.createFont();
                  font.setColor(HSSFColor.VIOLET.index);
                  font.setFontHeightInPoints((
          short)16);
                  font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
                  
          //把字體應(yīng)用到當(dāng)前的樣式
                  style.setFont(font);
                  
          //填充單元格
                  for(short i=0;i<5;i++){
                      
          //聲明一個(gè)單元格
                      HSSFCell cell=row.createCell(i);
                      
          //設(shè)置單元格的字符值
                      cell.setCellValue(new HSSFRichTextString(""+i+""));
                      
          //設(shè)置單元格的樣式
                      cell.setCellStyle(style);
                  }
                  FileOutputStream fout
          =new FileOutputStream("我的第一個(gè)EXCEL.xls");
                  
          //輸出到文件
                  wb.write(fout);
                  fout.close();
              }
          }

          這個(gè)例子比起別的入門(mén)例子,可能會(huì)復(fù)雜一些,因?yàn)槔锩鎽?yīng)用到了樣式和字體,但是這些對(duì)于我們美化EXCEL是

          很重要的,EXCEL里面大部份都是插入字符串,但是我們也可以插入圖片或者圖形或者格式化的日期以及時(shí)

          間,至于如何插入這些,我們下次再講.:)




          盡管千里冰封
          依然擁有晴空

          你我共同品味JAVA的濃香.
          posted on 2007-09-12 15:53 千里冰封 閱讀(2670) 評(píng)論(5)  編輯  收藏 所屬分類(lèi): JAVASE

          FeedBack:
          # re: 利用POI操作EXCEL文檔(1)
          2007-09-12 19:38 | 劉甘泉
          poi的大容量讀 力不從心啊  回復(fù)  更多評(píng)論
            
          # re: 利用POI操作EXCEL文檔(1)
          2007-09-12 19:42 | 千里冰封
          @劉甘泉
          呵呵,大容量讀沒(méi)有試過(guò).JAVA對(duì)內(nèi)存大的東西一向不太好處理
          導(dǎo)圖片也是一樣的:(  回復(fù)  更多評(píng)論
            
          # re: 利用POI操作EXCEL文檔(1)
          2007-09-12 23:11 | ruislan
          我最近的工作就是將很多用Excel做得各種記錄之類(lèi)的導(dǎo)入到新的數(shù)據(jù)庫(kù)里面,最大的一個(gè)Excel文件有3000多條,雖然不算大容量,不過(guò)也不是很慢啊。  回復(fù)  更多評(píng)論
            
          # re: 利用POI操作EXCEL文檔(1)
          2007-09-13 06:41 | HERALS
          怎么看起來(lái)這么累啊,。。。 不懂。。。。
          瘋子,,,玩起JAVA了。。
            回復(fù)  更多評(píng)論
            
          # re: 利用POI操作EXCEL文檔(1)
          2007-09-13 13:02 | AlleNny
          一直不明白為什么POI不能操作Microsoft Project文件  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 西藏| 福安市| 南川市| 冀州市| 公主岭市| 西青区| 乐清市| 乐亭县| 武夷山市| 宜宾县| 商南县| 紫阳县| 正蓝旗| 瑞昌市| 南漳县| 区。| 格尔木市| 阳江市| 顺昌县| 四会市| 涡阳县| 黑龙江省| 梅河口市| 邢台市| 工布江达县| 巴林右旗| 湟中县| 获嘉县| 离岛区| 岚皋县| 江都市| 双峰县| 甘南县| 贵州省| 平顺县| 泗阳县| 湘潭县| 宜川县| 务川| 沙湾县| 乌鲁木齐市|