Existe-t-il un moyen d'obtenir l'objet ou la coordonnée de cellule par les données contenues dans la cellule? Par exemple si la cellule avec les coordonnées (1; 5) contient la chaîne "FINDME"
, je voudrais faire quelque chose comme Workbook.GetCellByData ("FINDME") et il devrait retourner l'objet Cell ou (1; 5) .Récupère la cellule par son contenu
J'ai trouvé un code snippet sur le site Web d'Apache POI qui pourrait être utile. Je pouvais lire le classeur entier et trouver les données avec une instruction IF-, mais est un peu sale ...
EDIT: J'ai codé la solution « sale » comme suit:
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;
Pour une raison quelconque, il échoue à l'instruction if. Id aiment obtenir la cellule avec le contenu "%title%"
.
Sortie:
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!
Est-ce que quelqu'un a une idée pourquoi cela ne fonctionne pas?
il peut être sale, mais si ce n'est pas une fonctionnalité fournie par l'API ou une caractéristique d'un objet fourni par l'API (comme un classeur hypothétique. getMap()) alors sale tout ça est laissé. La solution @RainDrops est la meilleure que je connaisse. –