有没有办法通过单元格包含的数据来获取单元格对象或坐标?
例如,如果坐标为(1; 5)的单元格包含字符串"FINDME"
,我喜欢做类似Workbook.GetCellByData(" FINDME")的内容,它应该返回Cell对象或(1; 5)。
我在Apache POI网站上找到了一个可能有用的code snippet。我可以阅读整个工作簿并使用IF语句查找数据,但这有点脏...
修改: 我编写了#34;脏"解决方案如下:
public Cell getCellByContent(String data) {
for (Row row : wb.getSheetAt(0)) {
for (Cell cell : row) {
if (cell.getCellType() == Cell.CELL_TYPE_STRING){
System.out.println(String.format("Found String type at (%s,%s) and read: %s", row.getRowNum(), cell.getColumnIndex(), cell.getStringCellValue()));
if (cell.getStringCellValue() == data) { //HERE
return cell; //HERE
} //HERE
}
}
}
System.out.println("Can't find it bruh!");
return null;
由于某种原因,它在if语句中失败了。我希望获得内容为"%title%"
的Cell。
输出:
Found String type at (0,0) and read: %title% <------ IT'S RIGHT HERE!
Found String type at (2,0) and read: Test Information
...
Can't find it bruh!
有人知道为什么这不起作用吗?
答案 0 :(得分:1)
我想我可以帮助你。你只需为行和列创建两个for()循环,然后键入Workbook.getCellValue(i,j)(i是行的编号,j是列的编号
答案 1 :(得分:1)
修复脏解决方案替换
if (cell.getStringCellValue() == data)
与
if (cell.getStringCellValue().equals(data))