posts - 24,  comments - 25,  trackbacks - 0
          以前在一個(gè)OA項(xiàng)目里使用過POI包來導(dǎo)入導(dǎo)出過Excel,所以在此再回憶一遍,方便自己和大家以后使用。

          POI可以讓你使用Java來讀寫Excel、Word文件

          要求:JDK 1.4 + POI開發(fā)包(可以到 http://www.apache.org/dyn/closer.cgi/jakarta/poi/ 下載)

          相關(guān)的說明文檔

          官方網(wǎng)站: http://jakarta.apache.org/poi/

          創(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)"的工作表,其語句為:
               
          // HSSFSheet sheet = workbook.createSheet("sheet1");

             HSSFSheet sheet 
          = workbook.createSheet();

             
          // 在索引0的位置創(chuàng)建行(第一行)

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

             
          //在索引0的位置創(chuàng)建單元格(第一列)
             HSSFCell cell = row.createCell((short0);
             
          // 定義單元格為字符串類型(Excel-設(shè)置單元格格式-數(shù)字-文本;不設(shè)置默認(rèn)為“常規(guī)”,也可以設(shè)置成其他的,具體設(shè)置參考相關(guān)文檔)
             cell.setCellType(HSSFCell.CELL_TYPE_STRING);
             
          // 在單元格中輸入一些內(nèi)容
             cell.setCellValue("你要輸入的內(nèi)容");
             
          // 新建一輸出文件流
             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ù)

          示例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,
             
          // 其語句為: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 );
            }

           }

          }



          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((short0);
          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); 
          }
           
          }
           


          補(bǔ)充:其實(shí)上面的導(dǎo)入導(dǎo)出,只要靈活應(yīng)用,結(jié)合if ()和for()可以達(dá)到很好的效果。

          下一篇我會(huì)簡單介紹以下web中怎么使用上傳和下載excel和word。

          posted on 2008-02-18 09:48 Jarry 閱讀(3459) 評(píng)論(5)  編輯  收藏 所屬分類: POI-Excel/Word

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 拜城县| 乐业县| 惠水县| 砀山县| 贡山| 山阳县| 方正县| 周至县| 淮阳县| 井冈山市| 普定县| 石河子市| 任丘市| 江山市| 肇东市| 河曲县| 繁昌县| 竹溪县| 广宁县| 西林县| 嘉祥县| 七台河市| 民乐县| 富平县| 临安市| 古交市| 乌鲁木齐县| 兴文县| 宁陵县| 北辰区| 武冈市| 建德市| 綦江县| 汽车| 江阴市| 华容县| 凤山县| 苗栗县| 奉贤区| 牡丹江市| 明光市|