嗨我想在第一行搜索字符串,如果找到字符串,那么我想移动该列。
for (int i = 0; i < 1; i++) {
Row row = firstSheet.getRow(i);
for (int j = 0; j < row.getPhysicalNumberOfCells(); j++) {
String rtm=row.getCell(j).getStringCellValue();
if(rtm.contains(text)){
System.out.println(row.getCell(j).getStringCellValue()+"|| ");
}
}
}
答案 0 :(得分:2)
问题在于您的第一行:
for (int i = 0; i < 1; i++) {
这只会运行一次循环,这就是你只获得第一行的原因!
对于非字符串单元格,例如数字单元格,您的代码也会失败。
我建议您花一些时间来read the Apache POI documentation on iterating over rows and cells。那你可能想要更像的东西:
System.out.println("Searching for cells containing '" + text + "'");
DataFormatter formatter = new DataFormatter();
for (Sheet sheet : wb ) {
for (Row row : sheet) {
for (Cell cell : row) {
String value = formatter.formatCellValue(cell);
if (value.contains(text)) {
System.out.println("Found at " + (new CellReference(cell)).formatAsString() + ":");
System.out.println(value);
}
}
}
}
这将处理非字符串单元格,并为您提供如下输出:
Searching for cells containing 'needle'
Found at A5
This is a needle
Found at B10
A needle can be helpful
然后根据需要进行调整!