当前位置: 首页 > article >正文

在java中获取excel的cell值的时候报错

在获取cell的时候,通常会有报错类型不匹配的问题,这是因为你的cell中存储的数据类型和使用的方法不匹配的原因,假如说cell中存储了一个数字,但是使用的cell.getStringCellValue()获取值,就会有如下错误

java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell
    at org.apache.poi.xssf.usermodel.XSSFCell.typeMismatch(XSSFCell.java:946)
    at org.apache.poi.xssf.usermodel.XSSFCell.getRichStringCellValue(XSSFCell.java:336)
    at org.apache.poi.xssf.usermodel.XSSFCell.getStringCellValue(XSSFCell.java:280)
    at com.example.test.TestApplicationTests.testIsEmpty(TestApplicationTests.java:68)
    at com.example.test.TestApplicationTests.branch(TestApplicationTests.java:44)
    at com.example.test.TestApplicationTests.main(TestApplicationTests.java:35)

这种错误的处理方式很简单,之前有一种方式,是可以解决这个问题的,但是这个方法已经被弃用了,所以找了一下现行可用的方法

cell.setCellType(CellType.STRING);
cell.getStringCellValue();

这个是从其他地方找到解决方式,可以参考一下

//使用的是这个包下的
import org.apache.poi.ss.usermodel.*;

//格式化cell,就可以获取cell的值
DataFormatter formatter = new DataFormatter();
String stringCellValue = formatter.formatCellValue(cell);

这个方式看了一下源码,大概是这么个意思哈,此处对cell做了空判断,第二个从字面意思来看,应该是判断是否是公式数据(是否引用函数),如果此处不准确的话,有了解的大佬给我回消息哈,我及时纠正

再接下来对型号进行分支匹配,对于各种类型,进行响应的值的返回,此处涉及到一个cell.getRichStringCellValue()方法,也是用来获取cell的值,但是与getStringCellValue不同的是,这个方法功能更加丰富,比如文字的样式,颜色等等


http://www.kler.cn/a/229616.html

相关文章:

  • SQLAlchemy
  • unity学习12:地图相关的一些基础2, 增加layer种草种树
  • 请求方式(基于注解实现)
  • 基于华为ENSP的OSPF状态机、工作过程、配置保姆级别详解(2)
  • [石榴翻译] 维吾尔语音识别 + TTS语音合成
  • 验证码倒计时:用户界面的小细节,大智慧
  • Feature refinement 的阅读笔记
  • Matplotlib热力图的创意绘制指南【第54篇—python:Matplotlib热力图】
  • idea运行程序报错 java 程序包org.junit不存在
  • C语言:内存函数
  • 前端 - 基础 列表标签 - 自定义列表 详解
  • 国外邮件群发平台如何选择?邮件营销工具?
  • Go语言中...(三个点)的使用几个常见情况
  • Midjourney新功能介绍:风格参考(Style References)详解
  • Dell服务器iDRAC9忘记密码, 通过RACADM工具不重启 重置密码
  • 【软件设计师笔记】深入探究操作系统
  • Unity类银河恶魔城学习记录3-2 Entity源代码 P48
  • Java 学习和实践笔记(1)
  • tcp/ip模型中,帧是第几层的数据单元?
  • 外包干了10个月,技术退步明显...
  • Python测试框架 Pytest —— mock使用(pytest-mock)
  • CPU对数据库的性能影响
  • 速度规划:s形曲线------pencv c++绘图(1)
  • LeetCode--455.分发饼干
  • SpringBoot之整合PageHelper分页插件