Lecture d une cellule ( dans fichier excel) de type standard en java

Résolu
intel42 Messages postés 18 Date d'inscription mardi 19 juillet 2011 Statut Membre Dernière intervention 12 août 2011 - 28 juil. 2011 à 16:04
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 29 juil. 2011 à 08:46
bonjour à tous,
J'ai un problème : je parse un fichier excel ( contenant des chaines de caractéres et des nombres "standard")
1) pour un nombre ("standard") 32 il me lit 18 1->19 et 1->20 j'ai comme l impression qu il me retourne j et non le contenu de la cellule ou alors du code ascii

for (int i = 36; i < 41; i++)
   for (int j = 0; j < 21; j++) {
      HSSFRow row = pro.getRow(i);
      HSSFCell cell = row.getCell(j);
      Object value = ContenuCellule(cell);
      o[i][j] = value;
 System.out.println("la valeur est : " + value);
}
private Object ContenuCellule(HSSFCell cell) {
Object value = null;
if (cell == null) {
value = null;
}else if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {
value = cell.getBooleanCellValue();
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
value = cell.getCellNum();
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
value =cell.getRichStringCellValue();
}else if(cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA){
value = cell.getStringCellValue();
}
return value;
}

La question est : quel est la valeur qu il me retourne ? Et comment faire pour qu il me lise 32 au lieu de 18
Quelqu'un pourrait-il m'aider ? merci d avance

7 réponses

Utilisateur anonyme
28 juil. 2011 à 16:14
Bonjour

Vous ne devez pas utiliser getCellNum() pour faire ça mais plutôt getNumericCellValue(). J'ai juste regardé dans la documentation d'Apache POI pour trouver la réponse, vous auriez dû le faire vous-même avant de poster ici conformément au réglement :
http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFCell.html
double getNumericCellValue()
Get the value of the cell as a number.

Cordialement. Bon courage.
















T.U.E.R (First Person Shooter créé par Julien Gouesse)
3
intel42 Messages postés 18 Date d'inscription mardi 19 juillet 2011 Statut Membre Dernière intervention 12 août 2011 6
28 juil. 2011 à 16:27
bonjour,
merci pour la réponse ....c'est effectivement cela ..
Mais je suis débutante (moins de 2 mois effectif de java )en java et votre remarque "vous auriez dû le faire vous-même avant de poster ici conformément au règlement " est assez hautaine ...J'ai lui la doc POI mais je suis passée à coté de ça ! C est sur que vous,vous n’êtes jamais arraché les cheveux sur un pb informatique alors que la réponse se trouvait sous vos yeux.Et il me semble que c un site d entraide et non de moral !Toutes mes excuses pour le dérangement ! surtout que j ai fait ce post suite à celui là : http://www.javafr.com/forum/sujet-IMPORTER-FICHIER-EXCEL-DANS-BASE-DONNEES-MYSQL_1537408.aspx?p=2
0
Utilisateur anonyme
28 juil. 2011 à 19:02
Premièrement, je ne suis pas tout le temps sur ce site, je fais mon possible. Si j'avais pu vous répondre avant, je l'aurais fait. Je vous rappelle que nous sommes des bénévoles.

Deuxièmement, je ne suis pas hautain, je ne fais que vous rappeler le règlement selon lequel "On fait une recherche avant de poster une question.".

Troisièmement, j'utilise rarement Apache POI, j'ai simplement fait une recherche sur Google avec le nom de la classe qui gère les cellules afin de retrouver la page de la documentation correspondante.

Quatrièmement, quand j'ai commencé à faire du Java, regarder la documentation dès que j'ai un doute a été un des premiers réflexes que j'ai pris, dès les premiers jours. Je suis un peu dur mais c'est pour votre bien. Si tous les programmeurs Java postent des questions dont les réponses se trouvent dans la documentation, nous pourrons moins aider celles et ceux qui se sont un peu plus creusés la tête et qui demandent de l'aide après avoir fait de vraies recherches. Vous encourager à ne pas utiliser la documentation Java correctement y compris pour des bibliothèques tierces serait une mauvaise chose sur le plan pédagogique à long terme. Quand j'étais en 3ème année de licence, j'avais dit à mes camarades de classe que s'ils ne connaissaient pas la documentation des classes que nous utilisions souvent pour faire des interfaces graphiques, ils risqueraient de caler en examen sur papier; j'aide les gens quitte à leur dire ce qu'ils n'ont pas envie d'entendre.

Cinquièmement, les noms de méthodes sont très bien choisis dans Apache POI. Dans la classe HSSFCell, toutes les méthodes qui retournent des valeurs de cellules se nomment get*CellValue(). Même sans avoir la documentation sous les yeux, vous auriez pu deviner que quelque chose clochait comme vous utilisiez déjà getBooleanCellValue(), getRichStringCellValue() et getStringCellValue(). Le seul endroit où vous n'utilisiez pas une méthode du genre get*CellValue() pour récupérer une valeur était là où ça ne marchait pas.

Sixièmement, je ne souhaite pas heurter les gens. Cependant, je vous respecte donc je vous dis clairement ce que je pense en espérant que cela vous aide à progresser. Si je vous ai blessé, je vous prie de m'en excuser.

Si votre problème est résolu, n'oubliez pas de le marquer. Si vous rencontrez d'autres problèmes, créez un autre sujet à cet effet. Cordialement.















T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 juil. 2011 à 19:12
Bonjour,

@intel42 : ne vous sentez pas agressé lorsqu'on vous fait des remarques, c'est la deuxième fois en deux sujets sur ce forum.

Comme le dit gouessej, nous sommes des bénévoles, nous ne sommes donc pas tenus de t'aider. Si ce genre de réaction se généralise, tu ne recevras plus de réponses sur le forum.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
intel42 Messages postés 18 Date d'inscription mardi 19 juillet 2011 Statut Membre Dernière intervention 12 août 2011 6
28 juil. 2011 à 20:18
belle solidarité ....
Quitte à vous heurter je ne compte pas non plus tout accepter.Je ne vois pas ou je me sens agressée je ne fais que répondre à vos remarques.
@julien 39 : tu m'as aidé depuis le départ et je t en remercie encore une fois mais il me semble que toi comme moi sommes passés à côté de la remarque de gouessej.J ai un certain langage et vous avez le vôtre.
@gouessej : sache que j ai regardé la doc mais on n'est pas à l abri d une erreur ( je te le redis encore une fois )et je te remercie de ton aide.
"je ne fais que vous rappeler le règlement selon lequel On fait une recherche avant de poster une question."-> c est ce que je ne comprends pas trop je vous ai expliqué que je suis passée au dessus alors oui j aurai du peut être passer encore 2j sur ce problème.

"Si votre problème est résolu, n'oubliez pas de le marquer. Si vous rencontrez d'autres problèmes, créez un autre sujet à cet effet."-> merci je n y avais pas pensé

Je sais bien que vous êtes bénévoles et vous n'avez aucune obligation à mon égard.Si vous voulez me mettre à l'écart je ne sais pas quoi dire de plus
0
Utilisateur anonyme
28 juil. 2011 à 22:12
Vous m'avez accusé de vous faire la morale, vous semblez avoir du mal à accepter la critique. Je viens ici pour aider les gens qui sont suffisamment humbles pour intégrer les remarques utiles qu'on leur fait. J'essaie d'être constructif avec vous tout comme avec Julien39 qui s'investit énormément sur ce site. Je ne souhaite pas vous mettre à l'écart mais vous débutez, vous devez reconnaître vos erreurs pour progresser. Vous aurait-il fallu deux jours pour remarquer ce dont j'ai parlé dans mon précédent message? J'ose croire que non. Je vous rappelle également que la classe HSSFCell n'a pas beaucoup de méthodes, je ne vois pas comment vous auriez pu tourner en rond pendant deux jours alors que vous avez déjà réussi à lire d'autres types de données dans les cellules.

Vous nous demandez de l'aide, nous vous aidons, nous ne venons pas ici pour nous faire gratuitement incendier. A aucun moment je n'ai cherché à être gratuitement méchant donc je vous prie de cesser de réagir comme si je vous avais personnellement attaqué. J'ai argumenté point par point, je vois que ça n'a pas été très utile.

En vous comportant ainsi, c'est vous qui vous mettez à l'écart, cela n'a rien à voir avec nous.











T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
29 juil. 2011 à 08:46
Je clos le sujet pour éviter que la situation ne dégénère.
0
Rejoignez-nous