java poi 操作Excel 删除行内容和直接删除行
一般情况下,删除行时会面临两种情况:删除行内容但保留行位置、整行删除(删除后下方单元格上移)。对应的删除方法分别是:
void removeRow(Row row)//Remove a row from this sheet. All cells contained in the row are removed as wellpublic void shiftRows(int startRow,int endRow,int n)//Shifts rows between startRow and endRow n number of rows.
示例代码:
以下代码是使用removeRow()方法删除行内容但保留行位置。代码从d:\test.xls中的第一个sheet中删除了第一行。需要注意的是,改变是需要在workbook.write之后才生效的。
import org.apache.poi.hssf.usermodel.*;
import java.io.*;
public class testTools{public static void main(String[] args){try {FileInputStream is = new FileInputStream("d://test.xls");HSSFWorkbook workbook = new HSSFWorkbook(is);HSSFSheet sheet = workbook.getSheetAt(0);HSSFRow row = sheet.getRow(0);sheet.removeRow(row);FileOutputStream os = new FileOutputStream("d://test.xls");workbook.write(os);is.close();os.close();} catch (Exception e) { e.printStackTrace();}}
}
以下代码是使用shiftRow实现删除整行的效果。同样,也是需要在进行workbook.write后才会生效。
import org.apache.poi.hssf.usermodel.*;
import java.io.*;
public class testTools{ public static void main(String[] args){ try { FileInputStream is = new FileInputStream("d://test.xls"); HSSFWorkbook workbook = new HSSFWorkbook(is); HSSFSheet sheet = workbook.getSheetAt(0); sheet.shiftRows(1, 4, -1);//删除第一行到第四行,然后使下方单元格上移 FileOutputStream os = new FileOutputStream("d://test.xls"); workbook.write(os); is.close(); os.close(); } catch (Exception e) { e.printStackTrace(); } }
}
自己写的一个包装好了的删除excel行的方法(利用shiftRows上移来删除行):
/** * Remove a row by its index * @param sheet a Excel sheet * @param rowIndex a 0 based index of removing row */
public static void removeRow(HSSFSheet sheet, int rowIndex) { int lastRowNum=sheet.getLastRowNum(); if(rowIndex>=0&&rowIndex<lastRowNum) sheet.shiftRows(rowIndex+1,lastRowNum,-1);//将行号为rowIndex+1一直到行号为lastRowNum的单元格全部上移一行,以便删除rowIndex行 if(rowIndex==lastRowNum){ HSSFRow removingRow=sheet.getRow(rowIndex); if(removingRow!=null) sheet.removeRow(removingRow); }
}
java poi 操作Excel 删除行内容和直接删除行相关推荐
- Java - Poi 操作 Excel
Java - Poi 操作 Excel 关注 "弋凡"(YiFan)微信公众号吧 记录简单笔记 做你的最爱 注意 XSSFWorkbook 对象是操作 .xlsx 格式的表格 HS ...
- poi操作excel之填充数据、删除行
poi操作excel之填充数据.删除行 每篇一句励志:有人说,这世间有两种浪漫,一种是相濡以沫,另一种是相忘于江湖. 废话不多说,直接上代码! // 获取到你要填充数据的sheet XSSFSheet ...
- Java poi操作Excel单元格样式
Java poi设置Excel单元格格式设置 XSSFWorkbook xwb = new XSSFWorkbook();或者 XSSFWorkbook xwb = new XSSFWorkbook( ...
- java poi操作excel 添加 锁定单元格保护
Excel的book保护是很常用的,主要是不想让别人修改Excel的时候用.这样能够避免恶意随便修改数据,提高数据的可信度. 下面介绍JAVA POI来实现设置book保护: 使用HSSFSheet类 ...
- java poi 操作 excel 读取本地Excel / 保存excel到本地 / url下载excel
pom.xml 配置poi版本 <dependency><groupId>org.apache.poi</groupId><artifactId>poi ...
- java POI操作Excel代码收藏 (包括标题垂直水平居中)
[size=large][color=red][b]1.HSSF 2003版Excel导出[/b][/color][/size] package com.hwt.glmf.common; import ...
- Java POI操作Excel记录
1.在excel中新增行和单元格 首先在excel中指定行之后新增单元格,如果后面还有行数据的话,则需要先执行sheet.shiftRows()操作,将后面的数据往下移动需要新增行的行数.然后再执行s ...
- execle java,Java使用POI操作Excel
Java使用POI操作Excel 1. POI操作Excel 1.1. 依赖 org.apache.poi poi 4.1.0 org.apache.poi poi-ooxml 4.1.0 org.a ...
- java使用poi操作excel删除一整行
java使用poi操作excel删除一整行 需求1:删除excel表格第4行 代码示例: sheet.shiftRows(4, sheet.getLastRowNum(),-1); 第一个参数为行数( ...
最新文章
- 【原创】用MySQL 生成随机密码-增加大写处理
- python装饰器实例-Python装饰器原理与简单用法实例分析
- 2021年辽宁省大学生数学建模竞赛题目A题_智慧停车的运营、管理规划
- matlab分类器函数
- 【Matlab】for循环进度条显示百分比进程和剩余时间
- 从零开始学习docker(十九)Swarm mode 集群服务间通信--RoutingMesh
- jquery validate表单验证插件
- linux系统安装arcsde,Linux操作系统安装ArcSDE10
- LeetCode 1678. 设计 Goal 解析器
- 这些智能合约漏洞,可能会影响你的账户安全!
- [EffectiveC++]item06:若不想使用编译器自动生成的函数,就该明确决绝
- 【操作系统】死等状态、忙等状态、有限等待、让权等待
- 网页设计师必备的35套最佳图标(免费下载)
- 建模算法(五)——图与网络
- LoadRunner函数的介绍
- dicom worklist、pacs环境搭建
- 如何有效阅读英文数据手册?
- linux更改网卡缓存,Linux 网卡驱动学习(四)(缓存描述符 Buffer Description)
- 怎么关闭fcitx的简繁切换和vscode的查找快捷键冲突了
- Showwindow 及参数