Java中通过POI读取Excel文件行数的方法是什么?

2026-05-28 11:481阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计898个文字,预计阅读时间需要4分钟。

Java中通过POI读取Excel文件行数的方法是什么?

这篇文章简要介绍了Java如何利用POI读取Excel行数据。以下是一个示例代码,展示了如何实现这一功能,适合初学者或工作者参考学习。

javaimport org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;import java.io.IOException;

public class ReadExcelExample { public static void main(String[] args) { String filePath=path/to/excel/file.xlsx; try (FileInputStream fis=new FileInputStream(filePath); Workbook workbook=new XSSFWorkbook(fis)) {

Sheet sheet=workbook.getSheetAt(0); Row row; Cell cell;

for (int i=0; i <=sheet.getLastRowNum(); i++) { row=sheet.getRow(i); if (row !=null) { for (int j=0; j

这段代码首先导入必要的类,然后通过FileInputStream读取Excel文件。使用XSSFWorkbook获取工作簿,并通过getSheetAt方法获取第一个工作表。接下来,遍历工作表中的每一行和每一列,获取单元格类型并打印其值。

对于需要进一步学习的朋友,可以参考以下关键词进行搜索:java poi 读取excel 文件。

这篇文章主要介绍了java如何利用POI读取Execel行数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

java 利用poi 读excel文件的操作,读取总的数据行数一般是通过调用 sheet.getLastRowNum() ;可是这样有时候会出现一些问题,例如,当其中一行的数据的确都为空,可是其原本的格式还在,并没有连带删除,这样计算出来的行数就不真实(比真实的大),还有当出现空白行时(也即某一行没有任何数据,通过Row row = sheet.getRow(i) 返回的row值为null),计算出来的值也不正确。

Java中通过POI读取Excel文件行数的方法是什么?

本人自己写了一个方法来对excel表进行过滤,将那些没有意义的行删掉,之后再调用sheet.getLastRowNum() 得到的值就是正确的了。

说明一下,本程序是结合自己项目的需求编写的,对于那些空白行有意义的excel文件来说,本文不存在参考价值。

package test; import java.io.FileInputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.CellReference; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; public class test2{ public static void main(String[] args) { Workbook wb = null; try { wb = new HSSFWorkbook(new FileInputStream("E:\\Workspaces\\testdata\\仓库数据.xls")); } catch (Exception e) { // } Sheet sheet = wb.getSheetAt(0); CellReference cellReference = new CellReference("A4"); boolean flag = false; System.out.println("总行数:"+(sheet.getLastRowNum()+1)); for (int i = cellReference.getRow(); i <= sheet.getLastRowNum();) { Row r = sheet.getRow(i); if(r == null){ // 如果是空行(即没有任何数据、格式),直接把它以下的数据往上移动 sheet.shiftRows(i+1, sheet.getLastRowNum(),-1); continue; } flag = false; for(Cell c:r){ if(c.getCellType() != Cell.CELL_TYPE_BLANK){ flag = true; break; } } if(flag){ i++; continue; } else{//如果是空白行(即可能没有数据,但是有一定格式) if(i == sheet.getLastRowNum())//如果到了最后一行,直接将那一行remove掉 sheet.removeRow(r); else//如果还没到最后一行,则数据往上移一行 sheet.shiftRows(i+1, sheet.getLastRowNum(),-1); } } System.out.println("总行数:"+(sheet.getLastRowNum()+1)); } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计898个文字,预计阅读时间需要4分钟。

Java中通过POI读取Excel文件行数的方法是什么?

这篇文章简要介绍了Java如何利用POI读取Excel行数据。以下是一个示例代码,展示了如何实现这一功能,适合初学者或工作者参考学习。

javaimport org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;import java.io.IOException;

public class ReadExcelExample { public static void main(String[] args) { String filePath=path/to/excel/file.xlsx; try (FileInputStream fis=new FileInputStream(filePath); Workbook workbook=new XSSFWorkbook(fis)) {

Sheet sheet=workbook.getSheetAt(0); Row row; Cell cell;

for (int i=0; i <=sheet.getLastRowNum(); i++) { row=sheet.getRow(i); if (row !=null) { for (int j=0; j

这段代码首先导入必要的类,然后通过FileInputStream读取Excel文件。使用XSSFWorkbook获取工作簿,并通过getSheetAt方法获取第一个工作表。接下来,遍历工作表中的每一行和每一列,获取单元格类型并打印其值。

对于需要进一步学习的朋友,可以参考以下关键词进行搜索:java poi 读取excel 文件。

这篇文章主要介绍了java如何利用POI读取Execel行数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

java 利用poi 读excel文件的操作,读取总的数据行数一般是通过调用 sheet.getLastRowNum() ;可是这样有时候会出现一些问题,例如,当其中一行的数据的确都为空,可是其原本的格式还在,并没有连带删除,这样计算出来的行数就不真实(比真实的大),还有当出现空白行时(也即某一行没有任何数据,通过Row row = sheet.getRow(i) 返回的row值为null),计算出来的值也不正确。

Java中通过POI读取Excel文件行数的方法是什么?

本人自己写了一个方法来对excel表进行过滤,将那些没有意义的行删掉,之后再调用sheet.getLastRowNum() 得到的值就是正确的了。

说明一下,本程序是结合自己项目的需求编写的,对于那些空白行有意义的excel文件来说,本文不存在参考价值。

package test; import java.io.FileInputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.CellReference; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; public class test2{ public static void main(String[] args) { Workbook wb = null; try { wb = new HSSFWorkbook(new FileInputStream("E:\\Workspaces\\testdata\\仓库数据.xls")); } catch (Exception e) { // } Sheet sheet = wb.getSheetAt(0); CellReference cellReference = new CellReference("A4"); boolean flag = false; System.out.println("总行数:"+(sheet.getLastRowNum()+1)); for (int i = cellReference.getRow(); i <= sheet.getLastRowNum();) { Row r = sheet.getRow(i); if(r == null){ // 如果是空行(即没有任何数据、格式),直接把它以下的数据往上移动 sheet.shiftRows(i+1, sheet.getLastRowNum(),-1); continue; } flag = false; for(Cell c:r){ if(c.getCellType() != Cell.CELL_TYPE_BLANK){ flag = true; break; } } if(flag){ i++; continue; } else{//如果是空白行(即可能没有数据,但是有一定格式) if(i == sheet.getLastRowNum())//如果到了最后一行,直接将那一行remove掉 sheet.removeRow(r); else//如果还没到最后一行,则数据往上移一行 sheet.shiftRows(i+1, sheet.getLastRowNum(),-1); } } System.out.println("总行数:"+(sheet.getLastRowNum()+1)); } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。