代码之家  ›  专栏  ›  技术社区  ›  Matthias Meid

在Apache POI中按文本查找Excel单元格

  •  4
  • Matthias Meid  · 技术社区  · 14 年前

    我想在Excel表格中按文本查找单元格。文本是这样的 %t :

    sheet.findCell("%t"); // pseudo-code, not working
    

    %t型 单元格是数据表的左上角。

    附加问题:有没有更优雅的方法来完成这项工作?

    编辑 我正在遍历行和单元格来找到它。恐怕效率不高,但到目前为止还是有效的:

    public static Cell findCell(XSSFSheet sheet, String text) {     
        for(Row row : sheet) {          
            for(Cell cell : row) {              
                if(text.equals(cell.getStringCellValue()))
                    return cell;
            }
        }       
        return null;
    }
    
    1 回复  |  直到 9 年前
        1
  •  5
  •   Thorbjørn Ravn Andersen    14 年前

    您可以遍历工作表的单元格并研究其内容。我认为没有更简单的方法了。

        2
  •  1
  •   buseodaci    4 年前

    这是一篇老文章,但我仍然想发布我的代码。 可以定义文件路径。

    String inputFile = "src\main\resources\file.xlsx";
    
    XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream(inputFile));
                    DataFormatter formatter = new DataFormatter();
                    for (XSSFSheet sheet : xssfWorkbook) {
                        for (Row row : sheet) {
                            for (Cell cell : row) {
                                if (formatter.formatCellValue(cell).contains("name")){
                                    cell.setCellValue("test");
                                }
                            }
                        }
                    }
                    xssfWorkbook.write(new FileOutputStream(inputFile));