通过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,验证下一行。