這篇文章主要介紹了java如何利用POI讀取Execel行數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了高縣免費(fèi)建站歡迎大家使用!java 利用poi 讀excel文件的操作,讀取總的數(shù)據(jù)行數(shù)一般是通過(guò)調(diào)用 sheet.getLastRowNum() ;可是這樣有時(shí)候會(huì)出現(xiàn)一些問(wèn)題,例如,當(dāng)其中一行的數(shù)據(jù)的確都為空,可是其原本的格式還在,并沒有連帶刪除,這樣計(jì)算出來(lái)的行數(shù)就不真實(shí)(比真實(shí)的大),還有當(dāng)出現(xiàn)空白行時(shí)(也即某一行沒有任何數(shù)據(jù),通過(guò)Row row = sheet.getRow(i) 返回的row值為null),計(jì)算出來(lái)的值也不正確。
本人自己寫了一個(gè)方法來(lái)對(duì)excel表進(jìn)行過(guò)濾,將那些沒有意義的行刪掉,之后再調(diào)用sheet.getLastRowNum() 得到的值就是正確的了。
說(shuō)明一下,本程序是結(jié)合自己項(xiàng)目的需求編寫的,對(duì)于那些空白行有意義的excel文件來(lái)說(shuō),本文不存在參考價(jià)值。
package test; import java.io.FileInputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.CellReference; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; public class test2{ public static void main(String[] args) { Workbook wb = null; try { wb = new HSSFWorkbook(new FileInputStream("E:\\Workspaces\\testdata\\倉(cāng)庫(kù)數(shù)據(jù).xls")); } catch (Exception e) { // } Sheet sheet = wb.getSheetAt(0); CellReference cellReference = new CellReference("A4"); boolean flag = false; System.out.println("總行數(shù):"+(sheet.getLastRowNum()+1)); for (int i = cellReference.getRow(); i <= sheet.getLastRowNum();) { Row r = sheet.getRow(i); if(r == null){ // 如果是空行(即沒有任何數(shù)據(jù)、格式),直接把它以下的數(shù)據(jù)往上移動(dòng) sheet.shiftRows(i+1, sheet.getLastRowNum(),-1); continue; } flag = false; for(Cell c:r){ if(c.getCellType() != Cell.CELL_TYPE_BLANK){ flag = true; break; } } if(flag){ i++; continue; } else{//如果是空白行(即可能沒有數(shù)據(jù),但是有一定格式) if(i == sheet.getLastRowNum())//如果到了最后一行,直接將那一行remove掉 sheet.removeRow(r); else//如果還沒到最后一行,則數(shù)據(jù)往上移一行 sheet.shiftRows(i+1, sheet.getLastRowNum(),-1); } } System.out.println("總行數(shù):"+(sheet.getLastRowNum()+1)); } }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。