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

时间:2010-09-01 13:52:11

标签: java excel apache-poi

我想通过文本在Excel工作表中找到一个单元格。该文字类似于%t

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

我的目标是让用户能够提供一种模板,在其中编写数据。用户可以在Excel文件中配置颜色和字体以及数据的位置。此%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;
}

2 个答案:

答案 0 :(得分:4)

您可以遍历工作表的单元格并调查内容。我不认为有一种更简单的方法。

答案 1 :(得分:1)

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

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));