IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Documents Java Discussion :

[POI EXCEL] #VALEUR! avec POI mais pas dans Excel


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut [POI EXCEL] #VALEUR! avec POI mais pas dans Excel
    Bonjour,

    Je vais vous exposer un problème qui a pris beaucoup de temps à être identifié et pour lequel je n'ai malheureusement pas encore de solution informatique ...

    J'ai un fichier Excel FRANÇAIS qui contient des formules dont certaines utilisent la fonction BDLIRE (DGET pour les utilisateurs d'une version anglaise)

    Avec POI j'ouvre le workbook, je remplis le formulaire puis lorsque je tente d'évaluer la cellule qui contient la fonction il me retourne CELL_TYPE_ERROR (j'ai d'ailleurs #VALEUR! dans Excel si je sauvegarde mon document dans un fichier)

    Dans la formule j'ai : =BDLIRE(D3 : F5; A1; D3 : D5)
    A1 est une cellule texte dont on recherche la valeur dans des données numériques
    Les cellules D3:F4 ont de données numériques comme ceci:
    1,5 2,5 ...
    10 20 ...
    Avec des entiers tout va bien.
    Dans Excel tout va bien.

    Dans POI le problème vient en fait de la différence de formatage des nombres en chaîne lors de l'évaluation de la fonction car 1.5 (valeur de la cellule D3) est différent de "1,5" (valeur de la cellule A1) car soit :
    + il transforme les données numériques en chaîne et compare "1.5" avec "1,5"
    + il transforme les données texte en nombre et n'arrive pas à avoir une valeur pour "1,5" qui n'est pas un nombre correct en anglais.

    Potentiellement d'autres formules ne fonctionnent pas pour la même raison.
    Je n'ai pas trouvé comment forcer POI à faire les conversions dans une locale définie (celle utilisée dans la version du fichier Excel par exemple)

    Pour le moment ma seule façon de contourner le problème est de reprendre toutes les cellules (comme A1) et de m'assurer que les données sont bien numériques et pas textes...

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 095
    Par défaut
    Même problème en changeant la locale ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Même problème en changeant la locale ?
    Je n'ai pas trouvé comment changer la Locale de POI
    Je vais tester en changeant la locale temporairement mais j'ai peur que cela pose d'autres problèmes ailleurs vu que c'est du code serveur ...

    Je viens de tester en positionnant la Locale par défaut avant ouverture du Workbook mais cela ne change pas le comportement

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/07/2010, 09h31
  2. Réponses: 5
    Dernier message: 15/12/2008, 17h53
  3. Recherche d'une valeur présent dans une table mais pas dans une autre
    Par bossLINDROS dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/06/2008, 15h12
  4. Réponses: 6
    Dernier message: 30/05/2008, 17h03
  5. erreur de requête SQL avec ASP mais pas dans Access
    Par csszzen dans le forum Langage SQL
    Réponses: 6
    Dernier message: 16/03/2007, 09h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo