一般情况下,删除行时会面临两种情况:删除行内容但保留行位置、整行删除(删除后下方单元格上移)。对应的删除方法分别是:

void removeRow(Row row)//Remove a row from this sheet. All cells contained in the row are removed as well
public void shiftRows(int startRow,int endRow,int n)//Shifts rows between startRow and endRow n number of rows. If you use a negative number, it will shift rows up. Code ensures that rows don't wrap around.

示例代码:

以下代码是使用removeRow()方法删除行内容但保留行位置。代码从d:\test.xls中的第一个sheet中删除了第一行。需要注意的是,改变是需要在workbook.write之后才生效的。

[java] view plaincopy
  1. import org.apache.poi.hssf.usermodel.*;
  2. import java.io.*;
  3. public class testTools{
  4. public static void main(String[] args){
  5. try {
  6. FileInputStream is = new FileInputStream("d://test.xls");
  7. HSSFWorkbook workbook = new HSSFWorkbook(is);
  8. HSSFSheet sheet = workbook.getSheetAt(0);
  9. HSSFRow row = sheet.getRow(0);
  10. sheet.removeRow(row);
  11. FileOutputStream os = new FileOutputStream("d://test.xls");
  12. workbook.write(os);
  13. is.close();
  14. os.close();
  15. } catch (Exception e) {
  16. e.printStackTrace();
  17. }
  18. }
  19. }

以下代码是使用shiftRow实现删除整行的效果。同样,也是需要在进行workbook.write后才会生效。

[java] view plaincopy
  1. import org.apache.poi.hssf.usermodel.*;
  2. import java.io.*;
  3. public class testTools{
  4. public static void main(String[] args){
  5. try {
  6. FileInputStream is = new FileInputStream("d://test.xls");
  7. HSSFWorkbook workbook = new HSSFWorkbook(is);
  8. HSSFSheet sheet = workbook.getSheetAt(0);
  9. sheet.shiftRows(1, 4, -1);//删除第一行到第四行,然后使下方单元格上移
  10. FileOutputStream os = new FileOutputStream("d://test.xls");
  11. workbook.write(os);
  12. is.close();
  13. os.close();
  14. } catch (Exception e) {
  15. e.printStackTrace();
  16. }
  17. }
  18. }

自己写的一个包装好了的删除excel行的方法(利用shiftRows上移来删除行):

[java] view plaincopy
  1. /**
  2. * Remove a row by its index
  3. * @param sheet a Excel sheet
  4. * @param rowIndex a 0 based index of removing row
  5. */
  6. public static void removeRow(HSSFSheet sheet, int rowIndex) {
  7. int lastRowNum=sheet.getLastRowNum();
  8. if(rowIndex>=0&&rowIndex<lastRowNum)
  9. sheet.shiftRows(rowIndex+1,lastRowNum,-1);//将行号为rowIndex+1一直到行号为lastRowNum的单元格全部上移一行,以便删除rowIndex行
  10. if(rowIndex==lastRowNum){
  11. HSSFRow removingRow=sheet.getRow(rowIndex);
  12. if(removingRow!=null)
  13. sheet.removeRow(removingRow);
  14. }
  15. }

转载于:https://www.cnblogs.com/telwanggs/p/5783816.html

利用poi开源jar包操作Excel时删除行内容与直接删除行的区别相关推荐

  1. Java 技术篇-使用poi开源jar包实现读取excel实例演示,poi-3.17.jar获取

    jar 包下载: poi-3.17.jar import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.use ...

  2. POI操作Excel时Cannot get a text value from a numeric formula cell非法参数异常

    POI操作Excel时Cannot get a text value from a numeric formula cell非法参数异常 参考文章: (1)POI操作Excel时Cannot get ...

  3. Java常用开源jar包

    Java常用开源jar包 转:http://blog.csdn.net/kevingao/article/details/8125683 activation~与javaMail有关的jar包,使用j ...

  4. poi各种jar包作用和导入

    poi各种jar包作用和导入 目前POI的最新发布版本是poi-bin-3.17-20170915. 下载地址: Apache POI - Download Release Artifacts  ht ...

  5. java word jar_处理word的poi的jar包下载_处理word的poi的jar包官方下载-太平洋下载中心...

    对word文档的处理,提供对word信息抽取的类. 对word处理的poi的jar包(poi-bin-3.2-FINAL-20081019.zip) 现在Java对word excel进行操作的jar ...

  6. 利用 exe4j 将 JAR 包制成免安装 JDK 的 EXE 文件

    利用 exe4j 将 JAR 包制成免安装 JDK 的 EXE 文件 exe4j 的工作原理 EXE 制作教程   将 JAR 包制成能在 Windows 上直接运行的 EXE 文件,是很多 Java ...

  7. Java 读取excel 需要的jar_java自定义jar包读取Excel(包含2003和2007)数据,并举例说明...

    用java自定义jar包读取excel数据支持excel2007和excel2003 在外链网址已屏蔽所需要的包 如果需要excel2003和excel2007文件可以去 外链网址已屏蔽 在外链网址已 ...

  8. POI3.17与POI旧版本对比,方便POI升级jar包修改

    POI3.17与POI旧版本对比,方便POI升级jar包修改 颜色定义变化 获取单元格格式 设置单元格格式 设置单元格垂直居中样式 设置边框 合并单元格 设置字体加粗 最近使用EasyExcel写导入 ...

  9. 利用IDea导出jar包

    全图最新版利用IDEA导出jar包 最后一张图的jar包位置随意放,我这里标明与另一篇博客有关.

最新文章

  1. self.opener 和 self.parent
  2. SimplifiedHibernate:简化了的Hibernate
  3. Java游戏编程前篇 修改eclipse背景颜色
  4. python querystring encode_Java UriUtils.encodeQueryParam方法代碼示例
  5. 别人家SDK的设计模式——Android Retrofit库源码解读
  6. vi插入模式下的backspace键和方向键“不正常”使用解决方法
  7. 用python实现一个密码生成程序_Python实现密码生成器
  8. js dojo 读取txt
  9. python图片变清晰的软件_Python功能确实非常强大!不止PS可以美化照片Python也可以!满分...
  10. IOS捷径早安,创建自动化可实现自动化叫醒
  11. 好的计算机书籍 http://outmyth.blogdriver.com/outmyth/1122212.html
  12. Electron 初体验,用 js 搭建桌面应用程序
  13. 打破数据围墙 加速金融创新
  14. 什么是WMS系统,WMS如何选型
  15. centos cpu排查_Linux/CENTOS 系统 CPU 占用率较高负载较高问题排查思路 - 沃森博客...
  16. 「 论文投稿 」《IEEE ACCESS》录用经历
  17. HBase的compact分析
  18. Arcmap拓扑检查:重叠或者有空隙的面
  19. 因为老板的暴脾气,我裸辞了
  20. 《CSS权威指南》--附录

热门文章

  1. (44)FPGA时序逻辑与组合逻辑(组合逻辑)
  2. (42)VHDL实现多路复用器(case)
  3. 蓝桥杯小朋友排队java_1215. 小朋友排队
  4. python自定义排序规则_python自定义排序
  5. 5.FreeRTOS学习笔记- 互斥量
  6. wait() 和 waitpid()
  7. RTL8201网络芯片讲解
  8. TCP VS UDP
  9. python时间控件遮罩层_jquery遮罩层插件
  10. pycharm连接mysql1193错误_pycharm连接mysql数据库提示错误的解决方法_数据库