精华内容
下载资源
问答
  • 这篇文章主要介绍了java如何利用POI读取Execel行数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下java 利用poi 读excel文件的操作,读取总的数据行数一般是...

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

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

    本人自己写了一个方法来对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));

    }

    }

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

    展开全文
  • java使用POI获取sheet行数、列数
  • FileInputStream inp = new FileInputStream("E:\\WEIAN.xls");... HSSFSheet sheet = wb.getSheetAt(2); // 获得第三个工作薄(2008工作薄) // 填充上面的表格,数据需要从数据库查询 HSSFRow ...
    		FileInputStream inp = new FileInputStream("E:\\WEIAN.xls"); 
    		HSSFWorkbook wb = new HSSFWorkbook(inp);
    		HSSFSheet sheet = wb.getSheetAt(2); // 获得第三个工作薄(2008工作薄)
    		// 填充上面的表格,数据需要从数据库查询
    		HSSFRow row5 = sheet.getRow(4); // 获得工作薄的第五行
    		HSSFCell cell54 = row5.getCell(3);// 获得第五行的第四个单元格
    		cell54.setCellValue("测试纳税人名称");// 给单元格赋值
    		//获得总列数
    		int coloumNum=sheet.getRow(0).getPhysicalNumberOfCells();
                    //获得总行数	
    		int rowNum=sheet.getPhysicalNumberOfRows();	
                    int rowNum=sheet.getLastRowNum();
    

     

    展开全文
  • // 获得总记录数(行数) int lastRowNum = sheet.getLastRowNum(); int rowNum=sheet.getPhysicalNumberOfRows(); // 获得总字段数(列数) int columnCount = sheet.getRow(0).getPhysicalNumberOfCells...
    		// 获得总记录数(行数)
    		int lastRowNum = sheet.getLastRowNum();
    		int rowNum=sheet.getPhysicalNumberOfRows();
    
    		// 获得总字段数(列数)
    		int columnCount = sheet.getRow(0).getPhysicalNumberOfCells();

    有时候我们会发现要导入的Excel文件获取的行数或列数不正确,是什么原因呢?

    原因:我们对不在导入数据单元格范围以外的单元格也设置了格式:比如调整了行高及列宽,边框单元格属性等,你看着没有任何数据,但是实际上这些在数据范围外的单元格已经不是默认的格式了,所以获取的行数或列数将不正确。

    解决方法:选中有效数据区域外的可疑单元格--右键删除--保存即可。

    得到一个经验

    “在Excel表格中如果不在有效数据范围内的行列单元格千万不要去乱动修改”

    展开全文
  • Java使用Workbook/Sheet读取excel行数

    千次阅读 2019-07-08 19:57:57
    ### WorkBook/Sheet简介 ... * 获取excel文件实际行数 * * @param file */ public static int readFileLength(MultipartFile file) { // 文件函数 int lineLength = 0; // 声明workbook对象

    WorkBook/Sheet简介

    WorkBook:工作簿,相当Excel文件。
    Sheet:工作表,一个工作簿含有多个工作表。

    使用示例

     /**
       * 获取excel文件实际行数
       *
       * @param file
       */
    public static int readFileLength(MultipartFile file) {
    		// 文件函数
            int lineLength = 0;
            // 声明workbook对象
            Workbook workbook = null;
            try {
                workbook = WorkbookFactory.create(file.getInputStream());
                Sheet sheet = workbook.getSheetAt(0);
                lineLength = sheet.getPhysicalNumberOfRows();
            } catch (IOException e) {
                logger.error("read fileLength failed.");
            } finally {
                try {
                    if (workbook != null) {
                    	// workbook不为null则close
                        workbook.close();
                    }
                } catch (Exception e) {
                    logger.error("close workbook is failed.");
                }
                return lineLength;
            }
        }
    
    展开全文
  • // 获得总记录数(行数) int lastRowNum = sheet.getLastRowNum(); int rowNum=sheet....java - poi - excel导入用 getLastRowNum() 获取行数不正确,拿到的行数总是比实际的多,但是打开excel表格看却又
  • 我们要操作的1.xlsx是一个三行三列的表格import java.io.FileInputStream;import java.io.FileNotFoundException;...import org.apache.poi.sl.usermodel.Sheet;import org.apache.poi.ss.usermodel.Cell;im...
  • 获取Excel文件内容实际行数 当某个单元格只设置了非常规的格式时,POI中通过**sheet.getPhysicalNumberOfRows()**也会将这些非常规格式单元格所在的行算在内,此时得到的行数并非想得到的行数。 因此可以通过**...
  • java 利用poi 读execel文件的操作,读取总的数据行数一般是通过调用 sheet.getLastRowNum() ;可是这样有时候会出现一些问题,例如,当其中一行的数据的确都为空,可是其原本的格式还在,并没有连带删除,这样计算...
  • 最近做了个功能,需解析Excel文件,变成前端handsontable需要...获取cell跨的行数 /** * 获取cell跨的行数 * @param cell * @param sheet * @return */ public static int getRowSpan(Cell cell, XSSFShe...
  • 根据自己实际操作,poi中lastRowNum方法获取行数的是excel最后有数据的一行,从0开始而physicalNumberOfRows方法获取行数是excel最后有数据的一行减去最后一行之前的空白行 工作中有一个需求是,上传excel文件导入...
  • 1.创建文件流,打开EXCEL文件FileInputStream excelFile = newFileInputStream(excelPath);XSSFWorkbook workbook= new XSSFWorkbook(excelFile);2.切换到对应文件名XSSFSheet excelSheet =...3.获取实际行数和列数i...
  • Java导出Excel表格

    2017-04-23 13:34:00
    public void main(){ Workbook wookbook = ExcelUtil.createWorkbook(upload);  Sheet sheet = wookbook.getSheetAt(0);//读取第一个表格 int rows = sheet....//获取表格的行数  for (int i = 3; i ...
  • 数据:excel一共1004条数据:包含1行表头+1000有效数据+1个空白行+2行带有格式的空白行 目的:将excel表中的1000条有效数据批量导入... //获取到excel行数 ---> 1003(从0开始) int num = sheet.getLastRowNum();
  • //创建对工作薄文件的引用 HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file)); //创建对工作表的引用 HSSFSheet sheet = workbook.... //获取表格的行数 int rows = sheet.getPhysicalNumber
  • //返回合并单元格占用行数 public int isMergedRegion(Sheet sheet, int row, int column) { int sheetMergeCount = sheet.getNumMergedRegions(); for (int i = 0; i ; i++) { CellRangeAddress range = ...
  • [b]本源码修正了获取sheet中数据行数的BUG[/b],详情看getRows方法。 [code="java"]public class ExcelMergeUtil { public static void merge(List sourceFiles, String destFile)th...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

java获取sheet行数

java 订阅