日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Java 操作 Excel (讀取Excel2007,Poi實(shí)現(xiàn))

 CevenCheng 2014-08-28

關(guān)于Java讀取Excel2007的文章在Google、百度上搜索一下,沒有太好的例子,實(shí)現(xiàn)的也不算太好。查看了一下Poi,最新的 POI 3.5 beta 4 支持讀寫 Excel2007和PPT2007(XLSX and PPTX),自己來(lái)實(shí)現(xiàn)Java讀取Excel2007了。

 

1,下載 POI 3.5 beta 4 解壓,把其中的jar包導(dǎo)入項(xiàng)目文件。以我的讀取為例,導(dǎo)入了以下jar包。


 沒有配置 log4j,測(cè)試時(shí)報(bào)告警報(bào)信息,應(yīng)該為加載順序?qū)е碌某跏蓟瘑栴}造成(暫時(shí)沒有找原因)。

 

2,建立讀取 Excel2007 方法

 

Java代碼  收藏代碼
  1. // 構(gòu)造 XSSFWorkbook 對(duì)象,strPath 傳入文件路徑  
  2. XSSFWorkbook xwb = new XSSFWorkbook(strPath);  
  3. // 讀取第一章表格內(nèi)容  
  4. XSSFSheet sheet = xwb.getSheetAt(0);  
  5. // 定義 row、cell  
  6. XSSFRow row;  
  7. String cell;  
  8. // 循環(huán)輸出表格中的內(nèi)容  
  9. for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++) {  
  10.     row = sheet.getRow(i);  
  11.     for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++) {  
  12.         // 通過 row.getCell(j).toString() 獲取單元格內(nèi)容,  
  13.         cell = row.getCell(j).toString();  
  14.         System.out.print(cell + "\t");  
  15.     }  
  16.     System.out.println("");  
  17. }  

 

此過程直接傳入文件所在路徑,其他一些過程已經(jīng)被自動(dòng)實(shí)現(xiàn)。

 

3,測(cè)試,文件為8列3563行數(shù)據(jù),以文本方式讀取內(nèi)容,

 

Java代碼  收藏代碼
  1. public static void main(String[] args) {  
  2.     SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS");  
  3.     TimeZone t = sdf.getTimeZone();  
  4.     t.setRawOffset(0);  
  5.     sdf.setTimeZone(t);  
  6.     Long startTime = System.currentTimeMillis();  
  7.     String fileName = "F:\\我的文檔\\學(xué)生繳費(fèi)代碼.xlsx";  
  8.     // 檢測(cè)代碼  
  9.     try {  
  10.         PoiReadExcel er = new PoiReadExcel();  
  11.         // 讀取excel2007  
  12.         er.testPoiExcel2007(fileName);  
  13.     } catch (Exception ex) {  
  14.         Logger.getLogger(FastexcelReadExcel.class.getName()).log(Level.SEVERE, null, ex);  
  15.     }  
  16.     Long endTime = System.currentTimeMillis();  
  17.     System.out.println("用時(shí):" + sdf.format(new Date(endTime - startTime)));  
  18. }  

 

讀取所用時(shí)間為:4.172秒。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多