比如读取 excel 文件时:
有内容就读,无内容就设置为 null.无内容的意思是:只有一个空格 或者 多个空格 或者 "" 等等本人用的是 Apache POI 来读取excel
写的判断是:
if ((row != null) && (!row.getCell((short) 0).getStringCellValue().equals("")) &&
(row.getCell((short) 0).getCellType()!=row.getCell((short) 0).CELL_TYPE_BLANK))
{ ... }上面的 row 表示 excel中的行,row.getCell((short) 0).getStringCellValue()表示拿到第一行第一列的值,
row.getCell((short) 0).getCellType()表示第一列的类型,CELL_TYPE_BLANK 表示为空白。上面是本人写的判断,但还是读取了无内容的列。本人想要的结果是:不读取无内容的列。本人是否还漏了其他判断条件?待朋友们给予提示和帮助?谢谢!
有内容就读,无内容就设置为 null.无内容的意思是:只有一个空格 或者 多个空格 或者 "" 等等本人用的是 Apache POI 来读取excel
写的判断是:
if ((row != null) && (!row.getCell((short) 0).getStringCellValue().equals("")) &&
(row.getCell((short) 0).getCellType()!=row.getCell((short) 0).CELL_TYPE_BLANK))
{ ... }上面的 row 表示 excel中的行,row.getCell((short) 0).getStringCellValue()表示拿到第一行第一列的值,
row.getCell((short) 0).getCellType()表示第一列的类型,CELL_TYPE_BLANK 表示为空白。上面是本人写的判断,但还是读取了无内容的列。本人想要的结果是:不读取无内容的列。本人是否还漏了其他判断条件?待朋友们给予提示和帮助?谢谢!
解决方案 »
- ssh 整合空指针异常
- 倾家荡产的问个spring2.5注解事务问题,在线等
- 我将jeecms放在myeclipse中出现错误,,谁能替我解决一下,急
- Spring的小问题
- Struts提交表单后报IndexOutOfBoundsException错误
- struts2.1.6 类型转换
- 不显示删除回复显示所有回复显示星级回复显示得分回复 关于MYSQL UNION ALL的效率问题,急!
- 急!!!在线等 !!java split 竖线的问题
- 求助:J2EE系统在Unix 系统中出现乱码问题?谢谢
- hibernate3 存中文有乱码?? 在线等!!!
- jsp页面中object不能转化问题
- mysql如何导出数据库
row.getCell((short) 0).getStringCellValue().equals("")
就是检验这个单元格不是空的
可以试着将上面那行
改成这个
row.getCell((short) 0).getStringCellValue().trim().equals("")
多个空格trim一下去掉空格即可。
试试是否可行
回3楼:getStringCellValue()返回String,CELL_TYPE_BLANK 表示 类型为int型。
我也试了强制类型转换,还不行。谢谢!用正则的话,我只听说js有正则表达式判断,那要在jsp中判断了,
Java中有 以 正则表达式为参数的 类 吗 ?或者更好的办法。
Matcher m = Pattern.compile("\\s+").matcher(s);
m.matches();
if ((row != null) && (!(row.getCell((short) 0).getStringCellValue().trim())equals("")) &&
(row.getCell((short) 0).getCellType()!=row.getCell((short) 0).CELL_TYPE_BLANK))
{ ... }这样就OK了
HSSFCell 的单元格值有好几种类型(请阅读包里的文件),你获取单元格值的时候先
调用我写的这个方法,然后再做判断
private String getCellValue(HSSFCell datacell) {
String result = "";
switch (datacell.getCellType()) {
case HSSFCell.CELL_TYPE_BLANK:
result = "";
break;
case HSSFCell.CELL_TYPE_STRING:
result = datacell.getRichStringCellValue().getString();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
result = String.valueOf(datacell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_FORMULA:
result = "";
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
result = String.valueOf(datacell.getBooleanCellValue());
break;
case HSSFCell.CELL_TYPE_ERROR:
result = "";
break;
default:
result = datacell.getRichStringCellValue().getString();
}
return result;
}
楼主可以试着用下。 java从1.4版本就支持正则表达式了。
为:static boolean matches(String regex,CharSequence input)
我也尝试添加参数,但是还是不行,上面的"\\s+"中的+表示什么意思?连接字符串吗 ?