我的空間,寫我所寫,禪我所藏

          與我一起遨游吧

           

          POI 簡(jiǎn)介及簡(jiǎn)單應(yīng)用

          由于項(xiàng)目需要從EXCEL文件中導(dǎo)入數(shù)據(jù),所以這幾天上網(wǎng)收集了一下這方面的資料!

          于是找到了POI這個(gè)玩意,本來(lái)想用JXL的,但了解到它對(duì)處理數(shù)據(jù)量大的時(shí)候,效率不行!.于是選擇了POI!

          要求:JDK 1.4+POI開(kāi)發(fā)包

          可以到 http://www.apache.org/dyn/closer.cgi/jakarta/poi/ 下載

          Jakarta POI

          Jakarta POI可以讓你使用Java來(lái)讀寫MS Excel ,Word文件  

          相關(guān)文檔

          官方網(wǎng)站: http://jakarta.apache.org/poi/ 
          http://www.matrix.org.cn/down_view.asp?id=14 


          www.matrix.org.cn上的東西一向很不錯(cuò)!!



          創(chuàng)建Excel 文檔

            示例1將演示如何利用Jakarta POI API 創(chuàng)建Excel 文檔。 

            示例1程序如下:

          import org.apache.poi.hssf.usermodel.HSSFWorkbook;
          import org.apache.poi.hssf.usermodel.HSSFSheet;
          import org.apache.poi.hssf.usermodel.HSSFRow;
          import org.apache.poi.hssf.usermodel.HSSFCell;
          import java.io.FileOutputStream;
          public class CreateXL {

           /** Excel 文件要存放的位置,假定在D盤下*/

           public static String outputFile="D:\\test.xls";

           public static void main(String argv[]){

           try{

            // 創(chuàng)建新的Excel 工作簿

            HSSFWorkbook workbook = new HSSFWorkbook();

            // 在Excel工作簿中建一工作表,其名為缺省值
                // 如要新建一名為"效益指標(biāo)"的工作表,其語(yǔ)句為:
                // HSSFSheet sheet = workbook.createSheet("效益指標(biāo)");

            HSSFSheet sheet = workbook.createSheet();

            // 在索引0的位置創(chuàng)建行(最頂端的行)

            HSSFRow row = sheet.createRow((short)0);

            //在索引0的位置創(chuàng)建單元格(左上端)
            HSSFCell cell = row.createCell((short) 0);
            // 定義單元格為字符串類型
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
            // 在單元格中輸入一些內(nèi)容
            cell.setCellValue("增加值");
            // 新建一輸出文件流
            FileOutputStream fOut = new FileOutputStream(outputFile);
            // 把相應(yīng)的Excel 工作簿存盤
            workbook.write(fOut);
            fOut.flush();
            // 操作結(jié)束,關(guān)閉文件
            fOut.close();
            System.out.println("文件生成...");

           }catch(Exception e) {
            System.out.println("已運(yùn)行 xlCreate() : " + e );
           }
          }
          }
            

          讀取Excel文檔中的數(shù)據(jù)

            示例2將演示如何讀取Excel文檔中的數(shù)據(jù)。假定在D盤JTest目錄下有一個(gè)文件名為test1.xls的Excel文件。

          示例2程序如下:

          import org.apache.poi.hssf.usermodel.HSSFWorkbook;
          import org.apache.poi.hssf.usermodel.HSSFSheet;
          import org.apache.poi.hssf.usermodel.HSSFRow;
          import org.apache.poi.hssf.usermodel.HSSFCell;
          import java.io.FileInputStream;
          public class ReadXL {
           /** Excel文件的存放位置。注意是正斜線*/
           public static String fileToBeRead="D:\\test1.xls";
           public static void main(String argv[]){ 
           try{
            // 創(chuàng)建對(duì)Excel工作簿文件的引用
            HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
            // 創(chuàng)建對(duì)工作表的引用。
            // 本例是按名引用(讓我們假定那張表有著缺省名"Sheet1")
            HSSFSheet sheet = workbook.getSheet("Sheet1");
            // 也可用getSheetAt(int index)按索引引用,
            // 在Excel文檔中,第一張工作表的缺省索引是0,
            // 其語(yǔ)句為:HSSFSheet sheet = workbook.getSheetAt(0);
            // 讀取左上端單元
            HSSFRow row = sheet.getRow(0);
            HSSFCell cell = row.getCell((short)0);
            // 輸出單元內(nèi)容,cell.getStringCellValue()就是取所在單元的值
            System.out.println("左上端單元是: " + cell.getStringCellValue()); 
           }catch(Exception e) {
            System.out.println("已運(yùn)行xlRead() : " + e );
           }
          }
          }
            設(shè)置單元格格式

            在這里,我們將只介紹一些和格式設(shè)置有關(guān)的語(yǔ)句,我們假定workbook就是對(duì)一個(gè)工作簿的引用。在Java中,第一步要做的就是創(chuàng)建和設(shè)置字體和單元格的格式,然后再應(yīng)用這些格式:

            1、創(chuàng)建字體,設(shè)置其為紅色、粗體:

          HSSFFont font = workbook.createFont();
          font.setColor(HSSFFont.COLOR_RED);
          font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
            2、創(chuàng)建格式

          HSSFCellStyle cellStyle= workbook.createCellStyle();
          cellStyle.setFont(font);
            3、應(yīng)用格式 

          HSSFCell cell = row.createCell((short) 0);
          cell.setCellStyle(cellStyle);
          cell.setCellType(HSSFCell.CELL_TYPE_STRING);
          cell.setCellValue("標(biāo)題 "); 


          處理WORD文檔

          import java.io.*; 
          import org.textmining.text.extraction.WordExtractor;
          import org.apache.poi.hssf.usermodel.HSSFWorkbook;
          import org.apache.poi.hssf.usermodel.HSSFSheet;
          import org.apache.poi.hssf.usermodel.HSSFRow;
          import org.apache.poi.hssf.usermodel.HSSFCell;

          public class TestPoi { 
          public TestPoi() { 

          public static void main(String args[]) throws Exception 

          FileInputStream in = new FileInputStream ("D:\\a.doc"); 
          WordExtractor extractor = new WordExtractor(); 
          String str = extractor.extractText(in); 
          //System.out.println("the result length is"+str.length()); 
          System.out.println(str); 

          posted on 2007-07-04 23:22 imcb 閱讀(669) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 洛阳市| 唐山市| 师宗县| 凤台县| 句容市| 栾城县| 华容县| 涞水县| 壤塘县| 定州市| 磐安县| 定日县| 宁国市| 茌平县| 壤塘县| 云梦县| 宁远县| 开平市| 普定县| 九龙城区| 瑞安市| 奉贤区| 滦平县| 扶风县| 北碚区| 商河县| 额尔古纳市| 阿瓦提县| 南涧| 高阳县| 胶南市| 庄浪县| 内黄县| 囊谦县| 荣成市| 开远市| 辽阳县| 泽州县| 宽甸| 满城县| 专栏|