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. ...
最新文章
- 什么是跨域?怎么解决跨域问题?
- 历史有资产忘记折旧如何处理_紧急提醒! 500万以下固定资产一次性计入“管理费用”的,会计抓紧调账!...
- 坑系列 —— 缓存+哈希=高并发?
- wxWidgets:wxGraphicsRenderer类用法
- xfce的面板调节声音大小的按钮不见了。
- lightswitch 添加 TreeView 控件
- 微信支付分使用用户数超2.4亿 每日使用笔数达千万级
- mysql federated engine
- 集合set中的基数cardinality是什么意思
- Maven入门实战笔记-11节[7-11]
- 在IDEA中玩转DEBUG模式,有BUG不会调试?不存在的。
- TheFatRat一般使用
- 第3章-线性概率模型(1)-logistics/probit模型
- VS软件版本号定义、规则和相关的Visual Studio插件
- CleanMyMac2022免费版MAC内存清理空间软件
- Matlab微分方程求解
- BZOJ2144: 跳跳棋
- [Python图像识别] 四十七.Keras深度学习构建CNN识别阿拉伯手写文字图像
- java imageio temp_Java ImageIO.setUseCache方法代碼示例
- 计算机无法加载加密文件,win10电脑加密,win10加密文件无法解密
热门文章
- 算法之路--高斯分布(一)
- ARM存储器之:协处理器CP15
- StrictMode ——Android性能调优的利器
- 吃得不对,骨骺提前闭合类似“拔苗助长”,反而长不高
- 日常python 助一臂之力
- 传真服务器软件产品的选择
- Android 10.0 Launcher3 电话和短信app图标显示未读短信和未接来电的条数
- 戴尔计算机软件方面的成就,笔记本电脑推荐:戴尔全能本成就7000符合年轻商务群体审美 保持高效工作...
- 【新】华为OD机试 - 数据分类(Python)| 刷完获取OD招聘渠道
- Oracle EBS WebADI的配置(IE+Excel)