Apache POI操作excel

 POI操作excel文件基礎

懷着激動地心情開始本人的第一篇博文編寫,希望用博客記錄我的技術進階路上的歷程,也給需要的同志們提供一點小小的指導。
OK,進入今天的主題吧——POI Excel文件操作基礎

話說Apache的office文擋的操作庫的確很神奇也很強大,最近我在寫一個關於“隨機抽取試卷”功能的小項目,需要設計java對excel文件的操作,於是走上了踏上了探索POI的路程。

需要用的POI Jar包在這裏哦!http://poi.apache.org/download.html

看看我的導入的jar包:
這裏需要對擴展名爲.xlsx的文件進行讀取並輸出,POI的讀取方式是讀取Excel表格的每一個小格的數據,一個小格就是一個類XSSFCell對象。

Okay,還是代碼看的比較直接比較爽:
	public static String readXlsx(String path) { 
		String text = "";

		try {
			OPCPackage pkg = OPCPackage.open(path);  

			XSSFWorkbook excel = new XSSFWorkbook(pkg);

			XSSFSheet sheet1 = excel.getSheetAt(0);


			for(@SuppressWarnings("rawtypes")
			java.util.Iterator itRow = sheet1.iterator(); itRow.hasNext();) {

				XSSFRow row = (XSSFRow) itRow.next();

				for(java.util.Iterator<Cell> it = row.cellIterator(); it.hasNext();) {

					XSSFCell cell = (XSSFCell) it.next();
					text += cell.getStringCellValue() + "\n";
				}
			}
			excel.close();
		} catch (Exception e) {
			e.printStackTrace();
			log.warning(e.toString());
		}
		return text;
	}

調用這個方法可以讀取你的.xlsx文件裏的數據哦!看看效果吧!look here:



當然,excel表格的擴展名可以是“.xlsx”也可以是“.xls”,這兩種類型文件操作的方式是不同的,但是還是大同小異的啦,不過調用的類 不同而已。這裏給一個讀取“.xls”文件的方法:
 public static String readXls(String path)
    {
        String text="";  
         try 
         {  
              FileInputStream is =  new FileInputStream(path);
              HSSFWorkbook excel=new HSSFWorkbook(is);  
             //獲取第一個sheet  
             HSSFSheet sheet0=excel.getSheetAt(0);  
             for (Iterator rowIterator=sheet0.iterator();rowIterator.hasNext();) 
             {  
                 HSSFRow row=(HSSFRow) rowIterator.next();  
                 for (Iterator iterator=row.cellIterator();iterator.hasNext();) 
                 {  
                     HSSFCell cell=(HSSFCell) iterator.next();  
                     //根據單元的的類型 讀取相應的結果  
                     if(cell.getCellType()==HSSFCell.CELL_TYPE_STRING) text+=cell.getStringCellValue()+"\t";  
                     else if(cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC) text+=cell.getNumericCellValue()+"\t";  
                     else if(cell.getCellType()==HSSFCell.CELL_TYPE_FORMULA) text+=cell.getCellFormula()+"\t";  
                 }  
               text+="\n";  
             }          
         } 
         catch (Exception e) 
         {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
         }  

         return text; 
    }

POI還支持Word、PPT文件的操作,慢慢學習吧。

我的博文處女作到這裏就要完成了,希望每天進步一點,fighting!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章