Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从java中的文件列表中获取特定文件的lastRowNum()_Java_Apache Poi - Fatal编程技术网

如何从java中的文件列表中获取特定文件的lastRowNum()

如何从java中的文件列表中获取特定文件的lastRowNum(),java,apache-poi,Java,Apache Poi,从文件夹中读取特定文件时,无法获取该文件的lastRowNum()。 方法返回合并文件夹中所有文件后的最后一行。我需要一个特定的文件 下面是使用的代码 File[] listOfFiles = folder.listFiles(); for (File file : listOfFiles) { if (file.isFile()&&(file.getName().substring(file.getName().lastIndexOf('.')+1).equals("xlsx

从文件夹中读取特定文件时,无法获取该文件的lastRowNum()。 方法返回合并文件夹中所有文件后的最后一行。我需要一个特定的文件

下面是使用的代码

File[] listOfFiles = folder.listFiles();

for (File file : listOfFiles)
{
if (file.isFile()&&(file.getName().substring(file.getName().lastIndexOf('.')+1).equals("xlsx")))
{
 Workbook workbook =WorkbookFactory.create(file.getAbsoluteFile());
                       Sheet sheet = workbook.getSheetAt(0);
                       int j = sheet.getLastRowNum();
                       System.out.println(j);
    }   
}  
我得到的输出是340,这是文件夹中所有文件中所有值的总和。
但是第一张纸应该是40。与第一个工作表一样,它只包含40行

当rowIterator.next()方法返回null时,我在循环中使用了一个break语句。这样一来,一个工作表就结束了,我又重新开始另一个工作表。 我没有计算lastRowNum()值来遍历这些行。 不知怎么的,这让我能够阅读所有的文件

Workbook workbook =WorkbookFactory.create(file.getAbsoluteFile());
                       Sheet sheet = workbook.getSheet("XYZ");
                       Iterator<Row> rowIterator = sheet.iterator();
                       rowIterator.next(); //Skipping headings              
                       while (rowIterator.hasNext())
                       {
                           Row row = rowIterator.next();
                           Iterator<Cell> cellIterator = row.cellIterator();
                           SheetObject obj1= new SheetObject();

                           Cell cell = cellIterator.next();
                           if(cell.getCellType() == Cell.CELL_TYPE_BLANK) {
                               break;
                           }
                           obj1.setValue1(val);
                           String temp = cell.getStringCellValue();
                           obj1.setModule(temp);  }
Workbook Workbook=WorkbookFactory.create(file.getAbsoluteFile());
工作表=工作簿.getSheet(“XYZ”);
迭代器rowIterator=sheet.Iterator();
roweiterator.next()//跳过标题
while(roweiterator.hasNext())
{
行=行迭代器。下一步();
迭代器cellIterator=row.cellIterator();
SheetObject obj1=新的SheetObject();
Cell=cellIterator.next();
if(cell.getCellType()==cell.cell\u TYPE\u BLANK){
打破
}
obj1.setValue1(val);
String temp=cell.getStringCellValue();
obj1.setModule(临时);}

但是,问题的解决仍然悬而未决。

第一份文件的第一页还是最后一份文件的第一页,你会得到340英镑?或者是最终打印340的增量系列?是打印340的增量系列。它取文件夹中的所有文件,取所有文件的第一页&所有行的总和为340。