POI操作Excel的API注意点总结
本篇是关于POI.jar操作Excel的API注意事项
基数问题
说明:我使用的是POI 3.15版本的,在版本问题上建议大家,在版本稳定的基础上尽量使用高版本的
看过很多帖子在问一个问题:假设原来有5行,删除最后一行之后,再获取还是5行的问题,我使用的这个版本没出现这样的问题,大家也可以使用我这个版本(哈哈)
测试源码
public void testPOI() {
try {
Workbook workbook = WorkbookFactory.create(new File("demo.xlsx"));
int numberOfSheets = workbook.getNumberOfSheets();
for (int s = 0; s < numberOfSheets; s++) {
String sheetName = workbook.getSheetName(s);
System.out.println(sheetName);
//获取总行数
Sheet sheet = workbook.getSheetAt(s);
//获取最后一行索引(基数为0)
int lastRowNum = sheet.getLastRowNum();
//获取总行数(基数为1)
int physicalNumberOfRows = sheet.getPhysicalNumberOfRows();
System.out.println("lastRowNum:" + lastRowNum);
System.out.println("physicalNumberofRows:" + physicalNumberOfRows);
for (int r = 0; r < physicalNumberOfRows; r++) {
if (r == sheet.getLastRowNum()) { //判断是否是最后一行
Row row = sheet.getRow(r);
sheet.removeRow(row); //如果是最后一行,删除这行
} else {
Row row = sheet.getRow(r);
//获取物理列(基数为1)
int physicalNumberOfCells = row.getPhysicalNumberOfCells();
//获取最后一列索引(基数为1)
short lastCellNum = row.getLastCellNum();
System.out.println("physicalNumberOfCells:" + physicalNumberOfCells);
System.out.println("lastCellNum:" + lastCellNum);
}
}
System.out.println("----------华丽分割线----------");
//获取最后一行索引(基数为0)
lastRowNum = sheet.getLastRowNum();
//获取总行数(基数为1)
physicalNumberOfRows = sheet.getPhysicalNumberOfRows();
System.out.println("lastRowNum:" + lastRowNum);
System.out.println("physicalNumberofRows:" + physicalNumberOfRows);
}
} catch (EncryptedDocumentException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
此贴持续更新......
POI操作Excel的API注意点总结的更多相关文章
- POI操作Excel
POI和Excel简介 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作 ...
- 自己封装的poi操作Excel工具类
自己封装的poi操作Excel工具类 在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完 ...
- 自己的包poi操作Excel工具
在前面的文章<使用poi读写Excel>中分享了一下poi操作Excel的简单演示样例.这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完毕的功能是:读取Excel.汇总E ...
- Java POI操作Excel注意点
excel的行索引和列索引都是从0开始,而行号和列号都是从1开始 POI·操作excel基本上都是使用索引 XSSFRow对象的 row.getLastCellNum() 方法返回的是当前行最后有效列 ...
- POI操作Excel(xls、xlsx)
阿帕奇官网:http://poi.apache.org/ POI3.17下载:http://poi.apache.org/download.html#POI-3.17 POI操作Excel教程(易百教 ...
- 使用POI操作Excel时对事先写入模板的公式强制执行
场景:POI读取Excel模板. 当使用POI操作Excel时,发现由POI生成的公式能够在打开Excel是被执行, 而事先手工写入Excel模板文件的公式则不自动被调用,必须手动双击该Cell才能生 ...
- POI操作Excel异常Cannot get a text value from a numeric cell
控制台抛出异常:java.lang.IllegalStateException: Cannot get a text value from a numeric cell 在java中用POI解析exc ...
- java使用POI操作excel文件,实现批量导出,和导入
一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...
- 利用Apache POI操作Excel
最近在做接口,有个功能是利用Excel导入汽车发动机所需零件信息到线上系统中.简单回顾一下之前学过的用java操作Excel. 1.maven配置Apache POI pom.xml中配置POIjar ...
随机推荐
- Linux常用命令和常见问题解决<------>第一章
查看文件下面所有的隐藏目录:ls -al ~ ls -al ~ls -a -l ~可以发现三条命令执行结果是一致的,原因:因为ls为命令 后面的参数要以空格来区分,不论几个空格 shell都会视为一体 ...
- Json 工具介绍 fastjson gson jackson
1. fastjson fastjson是一个Java语言编写的高性能功能完善的JSON库.它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致, 是目前Java语言中最快的J ...
- 一次浴火重生的MySQL优化(EXPLAIN命令详解)
一直对SQL优化的技能心存无限的向往,之前面试的时候有很多面试官都会来一句,你会优化吗?我说我不太会,这时可能很多人就会有点儿说法了,比如会说不要使用通配符*去检索表.给常常使用的列建立索引.还有创建 ...
- 百度地图api将可视区域定位到当前所在位置
1.前言 开头不说点什么,总是有点不习惯.还是说点什么吧,关于百度地图,我用的次数还是比较多的,没办法,需求呀.好吧,在用百度地图的时候,确实有过很多需求,不过好在百度地图很强大,每次需求在探索后都能 ...
- mybatis 详解(一)------JDBC
1.什么是MyBatis? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且 ...
- 关于wordpress后台首页加载ajax.googleapis特别慢的解决办法
通过审查元素发现,拖慢后台加载速度的主要是两个路径 1.https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js 2.h ...
- request.getParameter()与request.setAttribute()的区别 (转载)
request.getParameter()与request.setAttribute()的区别 request.getParameter(),request.setAttribute()区别如下: ...
- 使用OracleDBLink进行数据库之间对象的访问操作
Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象,例如我们新建了一个数据database1,我们需要操作 ...
- 轻松学JVM(四)——垃圾回收算法
我们都知道java语言与C语言最大的区别就是内存自动回收,那么JVM是怎么控制内存回收的,这篇文章将介绍JVM垃圾回收的几种算法,从而了解内存回收的基本原理. stop the world 在介绍垃圾 ...
- 会话控制cookie和session
Cookie Cookie简介 HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分中两次请求是否由一个客户端发出.这样的设计严重阻碍的Web程序的设计.如:在我们进行网购时, ...