`

POI彻底删除行,读取的行数不包括空行

 
阅读更多

背景介绍

   要频繁地往excel中插入行和删除行,所以行的sheet.getLastRowNum()值一直在变化。

   在插入行的代码是

	if(sheet.getPhysicalNumberOfRows()!=0){
				int rowN=sheet.getLastRowNum()+1;
				row=sheet.createRow(rowN);

			}else{
				row=sheet.createRow(sheet.getLastRowNum());
				
			}
			
			int i=0;
			//具体赋值
			row.createCell(i++).setCellValue(client.getUserNo());//用户号码
			row.createCell(i++).setCellValue(client.getSimNo());//SIM号

 

 所以要搞正确getLastRowNum()的值,统计出的行数,不能包括空行。在使用

sheet.shiftRows(i+1, sheet.getLastRowNum(), -1);

 进行删除行时,使用getLastRowNum(),统计的行数,包括了一个空白的行。这个是因为shitRow是移动, 

sheet.removeRow(row);

 才是移除行,为了统计的行数不包括空白,并且不存在空白行,应该使用代码

public static void delteRow(){
		 try{
	            FileInputStream is = new FileInputStream("d://1.xls");
	            HSSFWorkbook workbook = new HSSFWorkbook(is);
	            HSSFSheet sheet = workbook.getSheetAt(0);
	            int ls=sheet.getLastRowNum();
	            sheet.shiftRows(1, ls, -1);
	            Row row=sheet.getRow(ls);
	            sheet.removeRow(row);
	            FileOutputStream os = new FileOutputStream("d://3.xls");
	            workbook.write(os);
	            is.close();
	            os.close();
	        } catch(Exception e) { 
	            e.printStackTrace();
	        }
	}

 

 

 

 

PS:其实很简单,但找方法的时候,一直没找对,曾相过设置shiftRow行为null,其实使用shiftRow,最后的行都没值,但不是null,不知道为什么还能使用getLastRowNum统计到该行。

也试过将row中cell设置为null,其实row不包括了cell.

 

这里  int ls=sheet.getLastRowNum(); 这段代码还要注意下。否则还是出现空白行被统计,为什么那,因为一个逻辑结构

分享到:
评论

相关推荐

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

    下面是完整的示例代码,包括读取Excel文件、处理合并单元格以及将数据存储到`List`中: ```java import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org....

    poi包 EXCEL模板读取填数据并导出以及在模板某行插入新的行

    标题中的“poi包 EXCEL模板读取填数据并导出以及在模板某行插入新的行”涉及到了Apache POI库的使用,这是一个Java API,专门用于处理Microsoft Office格式的文件,如Excel。以下是对这个主题的详细解释: Apache ...

    java使用POI获取sheet、行数、列数

    通过以上示例代码,我们可以清楚地看到如何使用Java POI库来操作Excel文件,包括读取Sheet、获取行数和列数等。这对于自动化办公和数据分析任务来说是非常有用的技能。希望本文能帮助读者更好地理解和掌握这一技术。

    Java如何利用POI读取Excel行数

    Java如何利用POI读取Excel行数 Java如何利用POI读取Excel行数是Java开发者中一个常见的问题。在Java中,我们可以使用Apache POI库来读取Excel文件中的数据。在本篇文章中,我们将详细介绍如何使用POI库来读取Excel...

    poi复制指定行数的Excel表格内容

    Apache POI 是一个流行的开源库,它允许开发者使用Java语言来读取、写入和修改Microsoft Office格式的文件,包括Excel(.xlsx 和 .xls)。本教程将深入探讨如何使用Apache POI库来复制Excel表格的指定行数及其样式。...

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

    ### Java 实现删除 Excel 内容之间的空行 在日常工作中,我们经常需要处理大量的 Excel 文件,其中就包括对数据的清洗与整理。本篇文章将详细介绍如何使用 Java 实现删除 Excel 文件中的空行,这对于提高数据处理...

    poi获取导入行所在的图片

    在Java的POI库中,处理Excel文件时,我们经常需要读取并操作其中的数据,包括文本、数字以及图像等元素。然而,POI API在设计时并未直接提供获取单元格内图片的方法,这就需要我们采取一些间接的方式来实现。本知识...

    poi excel 模板读取 复制表 复制行且区分合并行

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,包括Excel。在Java开发中,POI库被广泛用于读取、写入和修改Excel文档。本篇将详细介绍如何使用Apache POI来读取Excel模板,复制工作表(Sheet...

    POI读取word文档的文字内容和图片内容

    在本主题中,我们将深入探讨如何使用POI库读取Word文档中的文字内容和图片。 首先,我们需要理解Word文档的基本结构。Word文档本质上是由一系列基于XML的数据存储在.OFFICEML格式的文件中,这使得我们可以通过解析...

    poi 复制行

    poi 复制指定行到指定位置. 未包含jar包

    POI生成Excel POI操作Excel POI读取Excel POI类库

    在这个场景中,我们关注的是如何使用POI来创建、读取和操作Excel文档。在Web项目中,这种功能通常用于数据导入导出,报表生成,或者任何需要与用户交换表格数据的场景。 **POI生成Excel** 生成Excel文件主要涉及...

    Java poi基于事件驱动读取excel 2007海量数据 处理空单元格

    该工具类是poi基于事件驱动去读取海量excel数据,解决内存溢出以及空单元格的问题。 该压缩包里面有两个文件,TestExcel.java主要是原始的处理方法,操作简单,适合小数据量的读取。 ExampleEventUserModelUtil.java...

    poi获取实际行数

    最近在学习POI POI的API没有真正的获取填写数据的行数 我在网上找到了 与其分享

    poi实现sheet页复制和根据空行拆分

    在Excel处理方面,POI提供了一套API,允许程序员在Java环境中创建、修改和读取Excel文件。本篇文章将详细介绍如何使用Apache POI库来实现Excel的Sheet页复制以及根据空行拆分单元格。 一、Sheet页复制 在Excel中,...

    POI读取Excel合并单元格并储存

    Apache POI是一个强大的库,允许程序员使用Java来创建、修改和显示Microsoft Office格式的文件,包括Excel(XLS和XLSX)。在我们的场景中,我们将关注如何读取Excel文件,尤其是处理那些合并了单元格的行与列,因为...

    POI读取 word 2003 和 word 2007 的例子

    这是一个POI读取word 2003 和 word 2007的例子 是一个Eclipse工程 下载后直接导入工程 运行 src 目录下的 Test java 类即可 这个 rar 包中包含着 POI 读取word 2003 和 word 2007 所需要的 jar 包 也有需要读取的 ...

    poi用户模式读取

    在用户模式下,POI读取文档的方式是不修改原始数据,只用于读取和分析信息。 描述中提到的“poi用户模式读取”可能是指一个具体的编程任务或教程,教导开发者如何使用POI API来读取Excel文件。下面将详细解释这一...

    [简单]poi读取word 2007简单文本框值

    综上所述,Apache POI提供了一种强大的方式来读取和操作Word文档,包括其中的文本框。通过理解Open XML结构和使用Apache POI提供的API,开发者可以有效地处理Word文档的各个部分,实现自定义的需求。在处理"文本框...

    ExcelUtil借助反射和POI对Excel读取,省略了以往读取Excel的繁琐步骤

    Apache POI是一个强大的库,它允许Java程序员创建、修改和展示MS Office格式的文件,包括Excel。在传统的Excel读取方法中,开发者需要手动处理每一行、每一列的数据,这往往涉及大量的代码和复杂的过程。而ExcelUtil...

    POI读取Excel包.rar

    这个"POI读取Excel包.rar"的压缩文件很可能包含了POI库的相关jar文件,以及可能的示例代码或教程,帮助用户学习如何使用POI来读取Excel数据。 POI项目始于2001年,它的主要功能是允许Java应用程序创建、修改和显示...

Global site tag (gtag.js) - Google Analytics