[JAVA] conversion point en virgule

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. 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
    1. c'est à dire ? j'ai essayé ta méthode avec le worbook en français mais j'observe aucun changement
      1. 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.
        1. 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
          1. 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
            1. 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();
              }
              
              1. 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 !
                1. Montre moi veut dire copie colle moi (le code autour du workbook à 5/10 lignes près)