关于org.apache.poi.ss.usermodel 操作excel数据丢失问题
今日测试发现excel 有一列为空 会导致后面的列数据丢失 特此记录一下修改的bug
//获得当前sheet工作表Sheet sheet = workbook.getSheetAt(sheetNum);if (sheet == null) {continue;}//获得当前sheet的开始行int firstRowNum = sheet.getFirstRowNum();//获得当前sheet的结束行int lastRowNum = sheet.getLastRowNum();//循环除了第一行的所有行for (int rowNum = firstRowNum + 1; rowNum <= lastRowNum; rowNum++) {//获得当前行Row row = sheet.getRow(rowNum);if (row == null) {continue;}//获得当前行的开始列//row.getFirstCellNum() 数据只能从第一列非空的读取 要漏数据 被这行代码坑了int lastCellNum = row.getLastCellNum();//获得当前行的列数 // int lastCellNum = row.getPhysicalNumberOfCells();String[] cells = new String[lastCellNum];//循环当前行for (int cellNum = 0; cellNum < lastCellNum; cellNum++) { //这行是原来的取值方法,罪魁祸首就是这个 firstCellNum =row.getFirstCellNum() ;lastCellNum=row.getPhysicalNumberOfCells() // for (int cellNum = firstCellNum; cellNum < lastCellNum; cellNum++) { Cell cell = row.getCell(cellNum);cells[cellNum] = getCellValue(cell);}list.add(cells);
public static String getCellValue(Cell cell) {String cellValue = "";if (cell == null) {return cellValue;}//把数字当成String来读,避免出现1读成1.0的情况if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {cell.setCellType(Cell.CELL_TYPE_STRING);}//判断数据的类型switch (cell.getCellType()) {case Cell.CELL_TYPE_NUMERIC: //数字cellValue = String.valueOf(cell.getNumericCellValue());break;case Cell.CELL_TYPE_STRING: //字符串cellValue = String.valueOf(cell.getStringCellValue());break;case Cell.CELL_TYPE_BOOLEAN: //BooleancellValue = String.valueOf(cell.getBooleanCellValue());break;case Cell.CELL_TYPE_FORMULA: //公式cellValue = String.valueOf(cell.getCellFormula());break;case Cell.CELL_TYPE_BLANK: //空值cellValue = "";break;case Cell.CELL_TYPE_ERROR: //故障cellValue = "非法字符";break;default:cellValue = "未知类型";break;}return cellValue;
}
关于org.apache.poi.ss.usermodel 操作excel数据丢失问题相关推荐
- hutool excel导入报错org.apache.poi.ss.usermodel.Cell.getCellType()Lorg/apache/poi/ss/usermodel/CellType;
使用hutoolexcel导入时报错如下 org.springframework.web.util.NestedServletException: Handler dispatch failed; n ...
- java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook] with root cause
一.问题描述 使用POI上传excel,本地可正常运行,开发服务器上报错. 二.异常信息如下: 2019-05-05 17:00:22,349 ERROR [http-nio-8080-exec-7] ...
- 异常:java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Workbook.getCellStyleAt
异常:java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Workbook.getCellStyleAt 参考文章: (1)异常:java ...
- Java org.apache.poi.ss.usermodel.Cell.getCellType()Lorg/apache/poi/ss/usermodel/CellType问题解决
问题描述: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception ...
- org.apache.poi.ss.usermodel.Cell.getCellType()Lorg/apache/poi/ss/usermodel/CellType(百分比解决你问题)
SpringBoot导入或者导出报错 1.首先在pom.xml中引入 <!--hutool--> <dependency><groupId>cn.hutool< ...
- 【Apache POI】Java 读取Excel文件
Excel内容如下: 封装Excel行列字段的Bean: public class Employee {private String name;private String gender;privat ...
- 【Apache POI】Java写入Excel文件
上篇文章学习了Java读取Excel文件,这篇文章接着来简单总结Java写入Excel,话不多说,看代码: import java.io.File; import java.io.FileInputS ...
- SpringMVC + Apache POI 实现WEB中Excel下载功能
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- POI(java 操作excel,word等)编程
一.下载所需jar包 下载地址:http://poi.apache.org/download.html http://download.csdn.net/detail/likai22/534250 二 ...
最新文章
- 基于Spark MLlib平台的协同过滤算法---电影推荐系统
- 操作系统pv操作学习总结
- VMDNS服务器未响应,vmware克隆虚拟机后进行网络配置
- 安装完成Fedora 15 LXDE 定制版后的操作
- 深度学习之眼睛状态识别混淆矩阵的绘制
- centos7安装docker-ce新版
- 因误推送“台风致全省人死亡”消息 腾讯视频push线团队全部被开?回应...
- [译] Facebook杯2013年编程挑战赛——预选赛题目及答案
- 人工智能究竟会不会让程序员失业?
- ios弧形进度条_IOS贝塞尔曲线圆形进度条和加载动画-阿里云开发者社区
- ubuntu MySQL-python 安装失败解决方法
- 房产纠纷官司费用是多少
- java和eova的关系_Eova 1.2 正式版,Java Web 快速开发平台
- 华泰证券 python 自动交易软件_有哪些能做自动交易的软件?
- java dll源码查看工具_Java调用dll库源码
- 你知道了区块链,现在该了解DCEP央行数字货币了
- java声音变音代码实现_大话音频变声原理 附简单示例代码
- extjs6 清除grid中combo列的值
- matlab怎么还原默认界面???
- UGUI ContentSizeFitter 嵌套 适配