当前位置: 首页 > 知识库问答 >
问题:

读取Excel标题和行值

傅嘉悦
2023-03-14
        //Create Workbook instance holding reference to .xlsx file
        XSSFWorkbook workbook = new XSSFWorkbook(file);

        //Get first/desired sheet from the workbook
        XSSFSheet sheet = workbook.getSheetAt(0);
        int totalRows = sheet.getPhysicalNumberOfRows();


        //Iterate through each rows one by one
        Iterator<Row> rowIterator = sheet.iterator();
        while (rowIterator.hasNext())
        {
            Row row = rowIterator.next();
            //For each row, iterate through all the columns
            Iterator<Cell> cellIterator = row.cellIterator();

            while (cellIterator.hasNext()) 
            {
                Cell cell = cellIterator.next();
                //Check the cell type and format accordingly
                switch (cell.getCellType()) 
                {
                    case Cell.CELL_TYPE_NUMERIC:
                        System.out.print(cell.getNumericCellValue() + "\t");
                        break;
                    case Cell.CELL_TYPE_STRING:
                        System.out.print(cell.getStringCellValue() + "\t");
                        break;
                }
            }
            System.out.println("");
Coln1 Coln2 Coln3 Coln4 
A        12   nice  3e
A        23   talk  s2
A        43   res   23
B        11   xl    34
B        88   out   r45
C        45    tr    h5
if (Coln1==B)
{

Loop the list of B rows (here its 2 rows)
Coln1 Coln2 Coln3 Coln4 
B        11   xl    34
B        88   out   r45

if i need , r45 , How to pass the row cell to get the value?

}

有人能帮忙吗。谢谢

共有1个答案

松越
2023-03-14

如果header是第1行,也许可以这样做。

Row headerRow = sheet.getRow(0);   

可以为索引定义一些常量。例如

int n1ColIndex = 0;    // 0-based.    this is the index of row in excel.
int n2ColIndex = 1;    // 
int n3ColIndex = 2;
int n4ColIndex = 3;

// then you can read cell by Row.getCell() method.

// below code, you can put in loop.
XSSFCell n1Cell = row.getCell(n1ColIndex);
if ( n1Cell == null ){
    continue;
}

String n1Col = n1Cell.getStringCellValue();
if( "B".equals(n1Col) ) {
    // get r45 value.

    XSSFCell n4Cell = row.getCell(n4ColIndex);
    if ( n4Cell == null ){
        continue;
    }

    String val = n4Cell.getStringCellValue();
    // this value will be 34 or r45
    // Do you understand ?

}

// update 1. how to get a row.

// method 1.
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext())
{
    Row row = rowIterator.next();

    // do something with the row var.
}

// method 2.
for ( int index=0; index < sheet.getLastRowNum(); index++){
    Row row = sheet.getRow(index);

    // check null.
    if ( row == null ){
        continue;
    }

    // do something with the row var.

}

API文档XSSFSheet

 类似资料:
  • 问题内容: 如何将excel数据导入python中的数据框。 基本上,当前的excel工作簿在打开时会运行一些vba,这会刷新数据透视表并执行其他操作。 然后,我希望将数据透视表刷新的结果导入python中的数据框,以进行进一步分析。 刷新和打开文件工作正常。但是我该如何从第5行的第一张纸中选择数据,包括标题到最后一条记录n。 问题答案: 您可以使用pandas的ExcelFile方法读取Exce

  • 介绍 读取Excel内容的封装,通过构造ExcelReader对象,指定被读取的Excel文件、流或工作簿,然后调用readXXX方法读取内容为指定格式。 使用 读取Excel中所有行和列,都用列表表示 ExcelReader reader = ExcelUtil.getReader("d:/aaa.xlsx"); List<List<Object>> readAll = reader.read(

  • 如何使用标题读取Excel文件(xlsx)阿帕奇POI,Spring Boot!!!。我知道我们可以使用行迭代器和单元格迭代器来读取。我想用标题阅读。 这就是我使用行迭代器和单元格迭代器读取xlsx文件的方式 但是如何使用标题阅读? 法典: 参考 1 的图像: 参考图片2:

  • 如何在Python中将excel数据导入到dataframe中。 基本上,当前的excel工作簿在打开时运行一些vba,这将刷新数据透视表并执行一些其他操作。 然后,我希望将数据透视表刷新的结果导入到python中的dataframe中,以便进一步分析。 文件的刷新和打开工作良好。但是,我如何从第一张表中选择数据,从第5行,包括标题到最后一个记录n。

  • 嗨,我想在第一行搜索一个字符串,如果找到了,我想移动那一列。

  • 本文向大家介绍如何在Python对Excel进行读取,包括了如何在Python对Excel进行读取的使用技巧和注意事项,需要的朋友参考一下   在python自动化中,经常会遇到对数据文件的操作,比如添加多名员工,但是直接将员工数据写在python文件中,不但工作量大,要是以后再次遇到类似批量数据操作还会写在python文件中吗?   应对这一问题,可以将数据写excel文件,针对excel 文件