poi 读取 excel 总行数 ,总列数 注意事项 lastRowNum 、lastCellNum
poi 读取 excel 总行数 ,总列数 注意事项 lastRowNum 、lastCellNum
一、概述
1、如下图,有一个 4行 3列的excel 表格数据,用 poi 读取后,分别获取 最大行号 和 列号, 预期是的: 行数为4,列数为3 ; 而实际却是: 行数 和 列数都是 3 .
二、大概代码
1、读取excel 文件代码
public static void main(String[] args) throws IOException, InvalidFormatException {String path ="/excel模板-内容修改.xlsx";InputStream in = ExcelCellUpdateTest.load(path);Workbook workbook = WorkbookFactory.create(in);Sheet sheet = workbook.getSheetAt(0);for (Row row : sheet) {}int firstRowNum = sheet.getFirstRowNum();int lastRowNum = sheet.getLastRowNum();System.out.println("firstRowNum =" + firstRowNum + " \t lastRowNum="+lastRowNum);Row row0 = sheet.getRow(0);int rowNum = row0.getRowNum();System.out.println("rowNum = "+ rowNum);short lastCellNum = row0.getLastCellNum();short firstCellNum = row0.getFirstCellNum();int physicalNumberOfCells = row0.getPhysicalNumberOfCells();System.out.println("firstCellNum= "+firstCellNum + "\t lastCellNum = "+ lastCellNum + " \t physicalNumberOfCells="+physicalNumberOfCells);for (int i = 0; i <= lastRowNum; i++) {Row row = sheet.getRow(i);for (int j = 0; j < lastCellNum; j++) {Cell cell = row.getCell(j);String s = null ;if(Objects.nonNull(cell)){s = cell.toString();}System.out.print("cell num :"+ j + " cell val :"+ s +" \t");}System.out.println();}
}
1.1、输出结果:
firstRowNum =0 lastRowNum=3
rowNum = 0
firstCellNum= 0 lastCellNum = 3 physicalNumberOfCells=3
cell num :0 cell val :姓名 cell num :1 cell val :年龄 cell num :2 cell val :addr
cell num :0 cell val :小明 cell num :1 cell val :18.0 cell num :2 cell val :北京市
cell num :0 cell val :小红 cell num :1 cell val :22.0 cell num :2 cell val :中国
cell num :0 cell val :小刚 cell num :1 cell val :33.0 cell num :2 cell val :朝阳区
三、总结
1、poi 读取excel文件中, 起始 行号 和 列号,都是 0 开始 ( firstRowNum =0 / firstCellNum= 0); 总行号计数: 从 0 开始计数,总行数应该为: lastRowNum+1 ,实际显示的结果是:总行数-1 ,在循环读取行数的时候,应该注意:
for (int i = 0; i <= lastRowNum; i++) {// 应该是: <= 等于}
或者:
for (int i = 0; i < lastRowNum+1 ; i++) {// 应该是: lastRowNum+1}
否则不能读取全部的行数!
2、总列号计数:从1开始计数,总列数 = lastCellNum ; 和实际总列数是一致的,无需特别处理。 因 起始 行号 和 列号,都是 0 开始 ,所以读取列数的时候,常规读取即可,如下:
for (int j = 0; j < lastCellNum; j++) {}
更多是poi excel 相关知识:
1、 https://thinkcode.blog.csdn.net/article/details/105232822
2、https://thinkcode.blog.csdn.net/article/details/126602426
poi 读取 excel 总行数 ,总列数 注意事项 lastRowNum 、lastCellNum相关推荐
- pandas读取excel文档,每列标题及标题下的内容,总行数,总列数
pandas读取excel文档,每列标题及标题下的内容,总行数,总列数 import pandas'''''' # file_path为excel的文件路径 def read_excel(file_p ...
- Py之Xlrd:Xlrd简介、安装、使用方法(读取xlsx文件的shee表头名/总行数/总列数、每一行的内容、指定列的内容)之详细攻略
Py之Xlrd:Xlrd简介.安装.使用方法(读取xlsx文件的shee表头名/总行数/总列数.每一行的内容.指定列的内容)之详细攻略 导读 xlrd,xlwt和xlutils是用Pyth ...
- poi读取excel模板,并填充数据
一.POI介绍 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 基本功能: HSSF - 提供读写 ...
- Uibot-Excel自动获取某个工作表的总行数、总列数,读取其全部内容
背景: Uibot自带的Excel读取区域,需要自己手动设置读取区域的范围,如果excel文件区域的范围发生了变化,就又需要手动修改,挺麻烦的.Uibot的资料不多,搜了很久没能解决问题,所以,无奈之 ...
- 根据用户输入的总行数(奇数),打印出菱形(总行数与总列数相等)。
[题目描述] 根据用户输入的总行数(奇数),打印出菱形(总行数与总列数相等). [输入] 一个整数n. [输出] 指定格式的菱形. [样例输入] 11↙ [样例输出] * *** ***** **** ...
- DataGrid控件读取具体某行某列的值、获取总列数
WPF中的datagrid控件获取总列数的函数是Items.Count来获取. 以下代码是循环获取各行第二列的数据,并存放在一个名为TX的Textbox控件中: for (int i = 0; i & ...
- poiexcel 读取引用列_java用poi读取Excel表格中的数据
Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版. Apache POI ...
- java使用POI获取sheet、行数、列数
FileInputStream inp = new FileInputStream("E:\\WEIAN.xls"); HSSFWorkbook wb = new HSSFWork ...
- vba根据列名获取列号 获取总列数 求和
Sub get()'获取总行数total_row = Range("a65536").End(xlUp).Rowtotal_row = ActiveSheet.UsedRange. ...
最新文章
- 关于计算机编码的笔记
- 怎么将导出的sql文件再次导入到数据库?
- python类属性描述_如何描述Python对象,以及属性、标识、类型和值之间的关系?...
- Qt Creator导出3D资产Exporting 3D Assets
- B. Product(2019ICPC西安邀请赛)(杜教筛)
- 还可以这样玩?揭秘打通线上线下新思路
- 我的软件项目过程管理经验
- 11款样式新颖的 jQuery/CSS3 网页菜单
- WordPress国外开源主题Enigma h1、h2、h3……标题不显示的解决办法
- 2.Prometheus 监控技术与实践 --- Prometheus基本概念及部署
- PS(Photoshop)常用快捷键使用大全
- 如何在Word中画横线?
- 微版权:用区块链破解数字版权登记难题,为原创图文知识产权保驾护航
- XP硬盘读写速度很慢的解决方法
- matlab生成高速轨道不平顺谱,国内外高速铁路轨道不平顺谱对比与思考.pdf
- matlab中求叠加平均,eeglab教程系列(6)-数据叠加平均{1}(Data averaging)
- 顺序栈栈顶指针指向详析
- 通过位运算来进行2的幂运算
- opencv 打开网络摄像头
- 计算机应用的高级职称,职称计算机应用能力要求相关政策规定
热门文章
- 解决关于“这个压缩文件格式未知或者数据已经被损坏”
- 【Leedcode】环形链表必备的面试题和证明题(附图解)
- iOS(swift):将相册里的资源复制到本地APP
- Android Studio上方便使用butterknife注解框架的偷懒插件Android Butterknife Zelezny
- 大数据(9e)Flink侧输出流
- Java设计模式之再从[暗黑破坏神装备镶嵌宝石系统]分析装饰(Decorator)模式
- 中国互联网10大平台
- layerUI下的绑定事件
- Mac中用Excel导入csv文件出现乱码
- HashMap:为什么容量总是为2的次幂