通過getPhysicalNumberOfRows()獲得的實際行數,不一定有數據的行數。
比如某個單元格只設置了非“常規”的格式,它也會被POI認為是實際行。
http://lltobe.iteye.com/blog/1127890
一:將報表導入數據庫:
http://blog.sina.com.cn/jianghumxa
做導出報表時間長了,突然要把報表導入數據庫反而不知道如何下手,查找了一些資料,發現其實報表的導入和導出道理是一樣的,都是將報表中的一行數據和對象的屬性對應起來。
總體分為如下幾步:
1、 獲得工作簿和sheet
FileInputStream fis=new FileInputStream(filePath);
HSSFWorkbook workbook = new HSSFWorkbook(fis)
HSSFSheet sheet = workbook.getSheet('Sheet1');
2、 獲得所有的行數
int rows = sheet.getPhysicalNumberOfRows();
3、 通過行和列的嵌套循環,將一行的值賦給一個字符串。
4、 將字符串通過split()方法拆分,賦值給一個對象。
5、 將對象保存到數據庫中.
二:在判斷一個字符串是否等於空值時,為了避免異常的出現,一般將變量放在后面
如:””.equals(Para);
不過POI里似乎沒有沒有這樣的方法,getNextPhysicalRow()。
所以只好從getFirstRowNum()到getLastRowNum()遍歷,如果null==currentRow,驗證下一行。