异常

在使用POI读取Excel文件内容时,发生了异常,大概意思是不能从一个数值的列获取一个字符串类型的值,报错如下:

使用了getStringCellValue()方法来获取值,POI会判断单元格的类型,如果非字符串类型就会抛出上面的异常。

如下图,读取绿色框中的值不抛异常,读取红色框中值出抛出异常,POI认为这是一个数字。

解决方式一:

解决方法是在读取某单元格时,使用setCellType()方法先将该单元格的类型设置为STRING,代码如下:

//此处省略N行代码
sheet.getRow(6).getCell(6).setCellType(CellType.STRING);
String cellValue = sheet.getRow(6).getCell(6).getStringCellValue();
//此处省略N行代码

解决方式二:

Excel中数值类型值在程序中按字符串类型获取

/*** 拿到不同类型单元格中的值* 1. 字符串: 字符串* 2. 布尔: toString* 3. 数值(double): 格式化后的字符串* @param cell 获取的单元格* @return 单元格中的值*/
private static String getCellValue(Cell cell) {String resultValue = "";// 判空if (Objects.isNull(cell)) {return resultValue;}// 拿到单元格类型int cellType = cell.getCellType();switch (cellType) {// 字符串类型case Cell.CELL_TYPE_STRING:resultValue = StringUtils.isEmpty(cell.getStringCellValue()) ? "" : cell.getStringCellValue().trim();break;// 布尔类型case Cell.CELL_TYPE_BOOLEAN:resultValue = String.valueOf(cell.getBooleanCellValue());break;// 数值类型case Cell.CELL_TYPE_NUMERIC:resultValue = new DecimalFormat("#.######").format(cell.getNumericCellValue());break;// 取空串default:break;}return resultValue;
}

java.lang.IllegalStateException: Cannot get a text value from a numeric cell相关推荐

  1. java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell 问题的解决

    问题 在使用POI读取Excel文件内容时,发生了异常. 获取文件内容的代码 HSSFRow row = sheet.createRow(1); String cell = row.getCell(2 ...

  2. Cannot get a text value from a numeric cell

    通过POI读取Excel文件时出现了如下的问题: java.lang.IllegalStateException: Cannot get a text value from a numeric cel ...

  3. 批量下载的实现及java.lang.IllegalStateException异常

    在工作流的一张表单里可能会有多个步骤上传附件,在用户的待办中往往会存在多条带有附件的任务,如果一一打开并且点击下载链接下载,不仅费时,而且繁琐,用户体验较差. OA系统采用的是FastDFS做为文件服 ...

  4. AndroidKotlin笔记——TextView赋值出现java.lang.IllegalStateException: tv must not be null

    前言 现在有很多Android开发的小伙伴使用Kotlin开发应用了,今天小编在使用Kotlin开发的时候遇到个问题,就是在TextView赋值时候出现了java.lang.IllegalStateE ...

  5. java.lang.IllegalStateException: Not on FX application thread

    问题描述 运行javaFX程序,系统会自动创建一个FX application thread线程,用于更新界面的组件信息,例如ListView的items.Label的text.当我们想运用多线程实现 ...

  6. java.lang.IllegalStateException: Cannot modify managed objects outside of a write transaction. in /U

    错误内容如下 java.lang.IllegalStateException: Cannot modify managed objects outside of a write transaction ...

  7. JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)

    测试又报bug啦 接到测试小伙伴的问题,说是一个接口不返回数据了,好吧,虽然不是我写的接口任务落到头上也得解决,本地调试了一下,好家伙,直接抛了个异常出来,这又是哪位大哥喝醉了写的代码... Exce ...

  8. 订阅者java_RxJava:“java.lang.IllegalStateException:只允许一个订阅者!”

    我正在使用RxJava来计算Android中某些传感器数据的标准化自动关联 . 奇怪的是,我的代码抛出一个异常("java.lang.IllegalStateException:只允许一个订 ...

  9. Tomcat启动之异常java.lang.IllegalStateException

    Tomcat启动之异常java.lang.IllegalStateException 参考文章: (1)Tomcat启动之异常java.lang.IllegalStateException (2)ht ...

最新文章

  1. 来自Mozilla的CSS书写规范建议
  2. Java 中 ConcurrentHashMap 原理分析
  3. VTK:可视化之TransformActorCollection
  4. UVA 10020 Minimal coverage
  5. Java如何定义三个圆_java – 以编程方式查找三个圆的交叉点
  6. virtualbox怎么共享文件夹 linux,Virtualbox中Ubuntu设置共享文件夹
  7. mangTomany 自关联之个人感悟
  8. Python中使用xpath获取Scrtpt里面的内容
  9. 上dj是什么意思_火花塞上的每个编码是什么意思
  10. 模版 ----- 一维前缀和与二维前缀和
  11. 构建一个简单的卷积神经网络,使用DRL框架tianshou匹配DQN算法
  12. 《具体数学》(二)和式
  13. 如何在SSH项目中布置多个定时任务?
  14. PLC通讯实现-C#实现三菱PLC通讯(三)
  15. caffe.bin caffe的框架
  16. Coding哥,魅族让你用洪荒之力来夺宝了!
  17. You_Probably_Dont_Need_RAC
  18. 关于Springboot定时任务
  19. 使用javascript制作 滚动字幕及时钟
  20. DevOps落地实践:BAT系列:ALI:企业研发效能解决方案

热门文章

  1. 过拟合与欠拟合的生动理解
  2. java石头剪刀布思路_石头剪刀布Java实现
  3. python 实时录音_python实现录音功能(可随时停止录音)
  4. wifi连接状态android,判断android设备wifi连接状态
  5. SQL Server 获取2019年节假日列表(可用于Java、.Net系统实现)
  6. 深入“无人地带”,快递企业能变更“快”吗?
  7. 系统之美 作者:德内拉梅多斯
  8. js打印线程id_泥瓦匠聊并发编程:线程与多线程必知必会(基础篇)
  9. Microsoft Azure 建立虚拟机
  10. 腾讯云从业者认证考试(学习笔记知识总结-全部章节)