java-使用Apache POI在Excel中读取单元格中的问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-使用Apache POI在Excel中读取单元格中的问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1495字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试使用Apache POI读取旧的(2007年前和XLS)Excel文件.我的程序转到行的末尾并进行迭代,直到找到不为null或为空的值.然后迭代回去几次并获取这些单元格.该程序可以很好地读取Office 2010中制作的XLSX和XLS文件.
我收到以下错误消息:
Exception in thread "main" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
在行:
num = Double.parseDouble(str);
从代码:
str = cell.toString();
if (str != "" || str != null) {
System.out.println("Cell is a string");
num = Double.parseDouble(str);
} else {
System.out.println("Cell is numeric.");
num = cell.getNumericCellValue();
}
单元格是文档中最后一个不为空或为null的单元格.当我尝试打印不为空或为null的第一个单元格时,它不打印任何内容,因此我认为我无法正确访问它.
解决方法:
最好先评估单元格的类型,然后再执行所需的操作.我使用以下代码来处理单元格数据(检查是否还要处理空白单元格):
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
str = cell.toString().trim();
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
//you should change this to your application date format
objSimpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");
str = objSimpleDateFormat.format(cell.getDateCellValue());
} else {
num = cell.getNumericCellValue();
str = String.valueOf(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_BLANK:
str = "";
break;
case Cell.CELL_TYPE_ERROR:
str = "";
break;
case Cell.CELL_TYPE_BOOLEAN:
str = String.valueOf(cell.getBooleanCellValue());
break;
}
内容总结
以上是互联网集市为您收集整理的java-使用Apache POI在Excel中读取单元格中的问题全部内容,希望文章能够帮你解决java-使用Apache POI在Excel中读取单元格中的问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。