java 讀取excel獲取真實行數

2021-06-29 01:24:41 字數 1198 閱讀 3939

剛進入公司開發,熟悉環境是個很大的難題,今天就接到了乙個任務,讓我修改批量上傳excel檔案的頁面.

公司採用的是apache提供的包,通過xml檔案的對映,把excel表和我們的model對應起來.本來是校驗正確的,結果莫名其妙到後面就會報空指標異常.

問題的原因:在沒有格式的前提下,getlastrownum方法能夠正確返回最後一行的位置;getphysicalnumberofrows方法能夠正確返回物理的行數;

* 在有格式的前提下,這兩個方法都是不合理的;

* 所以,在做匯入excel的時候,建議想要正確獲取行數,可以做乙個人為的約定,比如約定匯入檔案第一列不允許為空,行數就按照第一列的有效行數來統計;這樣就能正確獲取到實際想要的行數;

更新版本, 因為發現有時候 存在了加了樣式的邊框,邊框的屬性預設成為了 公式屬性,導致後面空指標,現已修復

修改版

/**

* 用來得到真實行數

*@param sheet

*@param flag 需要寫進資料庫的列數用逗號隔開 比如 (sheet sheet,int 2,int 3);隨意個

*@return

* */

public

static

intfindrealrows(sheet sheet, int... flag)

if (row.getcell(j) == null||row.getcell(j).getstringcellvalue().matches("^\\s+$")||row.getcell(j).getcelltype()>2)

blank.add(j);}}

system.out.println(s+"我");

// 如果4列都是空說明就該返回

if (total == flag.length) else

if (total == 0) else

throw

new busines***ception("第" + (i + 1) + "行" + h

+ "不能為空");}}

} catch (nullpointerexception e)

return row_real;

}

方法都這樣,通過約定乙個有的id來進行判斷,可以較快的得到真實的行數 ,以至於後面的集合迴圈輸出的話不會出現空指標異常

java 讀取Excel文件

workbook workbook null try 獲取工作表 workbook new workbook.getworkbook context.getresource web inf abc.xls getinputstream 獲取第乙個工作片 sheet sheet workbook.ge...

Java讀取Excel檔案

讀取的excel的格式為 姓名 年級 性別 張三 研一 女 李四 param filepath return list 第乙個list存sheet,第二個list存列。按照map取關鍵字 如 map 姓名 輸出為張 三 李四 throws exception public list readexce...

java讀取Excel內容

新增依賴 org.apache.poigroupid poiartifactid 3.16version dependency org.apache.poigroupid poi ooxmlartifactid 3.14version dependency net.sourceforge.jexce...