Obtenir des cellules de l'indice de valeur de la cellule, Apache POI
Environment Status Version PatchNumber
Windows Live 1.0 2
Unix Live 2.0 4
Mac Live 1.3 8
Si j'ai ci-dessus montre les données dans un fichier excel, comment puis-je accéder à la cellNumber de PatchNumber en utilisant le texte
XSSFRow row = (XSSFRow) rows.next();
Je voudrais accès row.getCellNumber("PatchNumber");
//Remarque: cette méthode n'existe pas dans Apache POI.
OriginalL'auteur SDS | 2012-09-26
Vous devez vous connecter pour publier un commentaire.
Je crois que je comprends ce que vous cherchez - vous voulez savoir la colonne qui contient le mot "Patch" en première ligne? Si donc, tout ce que vous devez faire est quelque chose comme:
Juste en boucle sur les cellules de la première (en-tête) de ligne, de vérifier leur valeur, et de faire une note de la colonne que vous êtes quand vous trouvez votre texte!
Nope. Tous les besoins pour trouver des choses dans des feuilles de calcul sera différent, et il n'y a rien de spécial à propos de la première ligne, donc il n'y a rien de général qui serait à l'œuvre de tout le monde. Meilleur pari est de faire les quelques lignes de code vous-même, couvrant vos besoins spécifiques!
OriginalL'auteur Gagravarr
N'est-ce pas ce que vous voulez?
Si vous souhaitez accéder, exactement sous le nom de "PatchNumber" vous pouvez lire l'en-tête de ligne et enregistrer un indice de PatchNumber. Je pense que le modèle de table définit uniquement l'accès aux cellules, mais ne fournit pas d'associer l'accès par des noms de colonne. Toutes les lignes sont de même modèle, je pense 🙂
Pour obtenir un index de colonne. Je voudrais effectuer une itération sur l'en-tête de ligne et de construire une liste de noms de colonnes
columns
ensuite, vous pouvez utilisercolumns.indexOf("PatchNumber")
http://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFRow.html#getCell(int)
Ce n'est pas possible évidemment. La ligne ne connaît pas la ligne d'en-tête. Avez-vous essayé de lire la ligne d'en-tête?
Je ne pouvais pas trouver toutes les API, et maintenant, depuis @Vladimir dit ce n'est pas possible, je suis en supposant qu'une telle API n'existe pas dans Apache POI.
Correct. Apache POI seulement fournit des API pour effectuer une itération sur les lignes et les cellules. Mais obtenir un index de colonne, c'est une logique qui dépend de votre document. De sorte que vous aurez à parcourir en-tête de rangée pour obtenir le résultat souhaité. Est-ce répondre à votre question maintenant?
oui j'ai fini par écrire le code pour obtenir le même. Merci pour vos commentaires.
OriginalL'auteur Vladimir
OriginalL'auteur Karthik P