[JAVA] conversion point en virgule

mr.prog Messages postés 30 Statut Membre -  
Herezia Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai crée une aplication qui insère des montants dans des tableaux excel, problème : les montants sont ajoutés avec un point, ce qui fait que toutes les formules effectué après ne fonctionne pas, car les montants doivent être avec des virgules

donc je voulais savoir comment faire pour avoir une virgule a la place du point sachant que les options régionales j'ai déja regardé sa ne fonctione pas !

merci

12 réponses

  1. Herezia Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   11
     
    Quelle API utilises-tu ?
    setLocale devrait obligatoirement résoudre tes problèmes si cette API est bien codée

    Attention si tu veux utiliser :String.replaceAll() il faut savoir que:

    - Le point est un métacaractère qui veut dire "n'importe quoi" il faut l'échaper avec un antislash \ qui lui même doit être échapé dans une chaîne de caractère java \\. Ce qui donne :String.replaceAll("\\.", ","); ou encore :String.replaceAll(java.util.regex.Pattern.quote("."), ","); pour se servir de la fonction qui te retourne la valeur littérale

    - Je t'encourage fortement à parvenir à changer les paramètres linguistiques plutôt que de bidouiller salement de la sorte

    On ne peut pas t'aider bien plus sans que tu précises ta méthode de manipulation du fichier excel (API comme Apache Jakarta POI ? Lecture brute ? Parser XML ?)

    Cheers
    2
  2. Herezia Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   11
     
    Montre moi le code que tu as utilisé pour le setLocale
    1
  3. mr.prog Messages postés 30 Statut Membre 3
     
    c'est à dire ? j'ai essayé ta méthode avec le worbook en français mais j'observe aucun changement
    1
  4. Cisco_31 Messages postés 141 Statut Membre 16
     
    Salut,

    Moi, c'est plutôt C# mais c'est kifkif.

    Ça m'a l'air plutôt simple: transforme tes montants en string et fait un replace() pour transformer tes . en , et envoie à Excel.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mr.prog Messages postés 30 Statut Membre 3
     
    j'ai essayé mais sa ne fonctionne pas...
    0
  7. mr.prog Messages postés 30 Statut Membre 3
     
    merci pour les réponses déja formulé
    j'utilise jExcel
    0
  8. Herezia Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   11
     
    mr.prog pour un monsieur de la programmation tu ne m'as pas l'air très habitué aux us et coutumes des forums d'entre aide.
    Généralement, on commence par tester les solutions avant de revenir, par simple respect pour ceux qui t'ont répondu :-)

    As tu essayé avec l'antislash avant le point ?
    As tu essayé en configurant l'instance de ton WorkBook en française ? Il faut par exemple appeler la méthode comme cela
    WorkBookSettings parametresWorkBook = new WorkBookSettings();
    parametresWorkBook.setLocale(Locale.FRENCH)
    

    On passera ensuite parametresWorkBook en paramètre de la méthode createWorkBook de ton :WritableWorkBook
    0
  9. mr.prog Messages postés 30 Statut Membre 3
     
    désolé...sa ne marchait pas, mais j'aurai du prendre le peine de te le dire, je vais essayé le worbook par contre je te redis
    0
  10. mr.prog Messages postés 30 Statut Membre 3
     
    merci, mais sa ne marche pas...
    0
  11. mr.prog Messages postés 30 Statut Membre 3
     
    dans la console, cela s'affiche bien avec une virgule grâce à la fonction replace mais pas dans le fichier Excel
    je te montre ce que j'ai fait
    if (expl.contains(ScellulePA))
    {
    	String reqPA  = REQUETE
    						
    	ResultSet rsPA = stmt.executeQuery(reqPA);
    						
    	while (rsPA.next())
    	{
    	logger.info("CA = " + rsPA.getString(1).replaceAll("\\." , ","));
    	Label contenuCellulle = new Label(colonnePA,ligneDebut + i,rsPA.getString(1).replaceAll("\\." ,                   ","),cellFormat);
    	feuilleXls.addCell(contenuCellulle);
           }
    	rsPA.close();
    }
    
    0
  12. mr.prog Messages postés 30 Statut Membre 3
     
    en faite, la virgule apparait bien, c'était une petite erreur de ma part dans le replace mais maintenant les formules ne sont pas rafraichies et donc ne donne pas les bons montants !
    0
  13. Herezia Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   11
     
    Montre moi veut dire copie colle moi (le code autour du workbook à 5/10 lignes près)
    0