poi sheet.getLastRowNum sheet.getRow() NULL 空

qianqiang1111 qianqiang1111 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
public List<String> getDatasInSheet(int sheetNumber,int colnum,int datanum,int colNums){

List<String> result = new ArrayList<String>();
//获得指定的sheet
HSSFSheet sheet = workbook.getSheetAt(sheetNumber);
//获得sheet总行数
int rowCount = sheet.getLastRowNum();
if(rowCount < 1){
return result;
}
//遍历行row
HSSFRow row=null;
String pList="";
for (short rowIndex = (short)(datanum-1); rowIndex < rowCount; rowIndex++) {
//获得行对象
row = sheet.getRow(rowIndex);
int nullLen=0;
if(null != row){
pList="";
//获得本行中单元格的个数
int cellCount = colnum-1+colNums;//row.getLastCellNum();
//遍历列cell
HSSFCell cell=null;
String cellValue="";
for (int cellIndex = colnum-1; cellIndex < cellCount; cellIndex++) {
cell= row.getCell(cellIndex);
cellValue=this.getCellString(cell);
if(cellValue ==null|| "".equals(cellValue.trim())){
nullLen++;
cellValue="^^";
}
pList+=cellValue+",";
}
}else{
return result;
}
if(nullLen<colNums){
if(result.size()>5000){
//效率问题 太大list溢出
break;
}
result.add(pList);
}else{
//本行记录全部为空值 报异常
break;
}
}

return result;
}


private String getCellString(HSSFCell cell) {
// TODO Auto-generated method stub
String result = null;
if(cell==null){
return "";
}
// cell.setCellType(HSSFCell.CELL_TYPE_STRING);
int cellType = cell.getCellType();
switch (cellType) {
case HSSFCell.CELL_TYPE_STRING:
result = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)){
result=sdf.format(cell.getDateCellValue());
}else{
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
result=cell.getStringCellValue();
}
break;
case HSSFCell.CELL_TYPE_FORMULA:
result = String.valueOf(cell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
result = String.valueOf(cell.getBooleanCellValue());
break;
case HSSFCell.CELL_TYPE_BLANK:
result = "";
break;
case HSSFCell.CELL_TYPE_ERROR:
result = "";
break;
default:
System.out.println("枚举了所有类型");
break;
}
return result;
}



Excel


1 xxxxx系统故障月报
2
3部门: xxxxx 月份: 2012-08
4系统名称 故障类型 故障照片 使用人 使用时间 故障等级 备份 其他
5营销系统 无法登陆 阿杰 2114-56-65 2 达到 达到
6营销系统 无法登陆 阿杰 2114-56-65 2 达到 达到试试试试死死死死死死死死死死死死


sheet.getRow(4) 总为NULL 怎么解决
...全文

相关推荐

java实现删除excel内容之间空行

java实现删除excel内容之间空行,需要导入皮包。

a201c501ys

poi获取exccel有合并单元格的数据

poi获取exccel有合并单元格的数据,存入List

nieyaoping

POI实战-java开发excel详解

本POI实战为本人在业余时间写成,从浅开始,整个文档处于初到中级水平,包含大部分项目开发中会用到的常用功能,由于本人精力与能力有限,如有错误欢迎指正。 目录大概: 1.POI入门 4 1.1 Excel基本知识 4 1.2 POI基本类 5 1.3 POI简单读取Excel数据 5 1.4 POI简单写出Excel 9 2.复杂读取 16 2.1 单元格各类型数据读取 16 2.1.1 基本类型 16 2.1.2 日期类型 18 2.2 自定义类型 21 3.复杂写入 22 3.1 复杂写入 22 3.2 多层公式 27 4.常用操作 30 4.1注释 30 4.1.1 单表注释 30 4.1.2 多表注释 32 4.1.3 空单元格注释 34 4.2单元格合并与数据读取 34 4.3 窗口冻结 37 4.4 下拉列表 38 5.POI样式 39 5.1 POI样式相关类 39 5.2 单元格边框样式 40 5.3 单元格背景色 41 5.4 单元格字体格式 41 5.5 单元格对齐方式 42 5.6 单元格数字格式化 45 5.7单元格宽度与高度 46 5.8 合并单元格样式 47 5.9 Excel样式实例 48 6.总结 52 7.附录 53

yuzhenling

SpringMvc+POI 处理Excel的导入操作

springMVC 整合poi导入数据,在很多项目中都会使用,能大大减少很多工作量

czf303286330

poi处理表格内容,列数和行数

poi处理表格内容

zhrmghgwsrmws
评论 3
收藏 已收藏
分享
返回顶部
qianqiang1111
Java SE 62,620 成员 307,251 内容