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 : cellule montant avec €


Sujet :

Documents Java

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Février 2015
    Messages : 402
    Points : 153
    Points
    153
    Par défaut POI : cellule montant avec €
    Bonjour,

    J'utilise POI pour générer un document excel à partir d'une appli web.
    Je souhaite afficher '€' à droite des cellules montant mais je ne trouve pas de solution.
    Le tuto du site n'aborde pas la question.
    J'ai trouvé sur le web :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HSSFDataFormat.getBuiltinFormat("#,##0.00\\ _€")
    mais ce format ne marche pas.
    avez-vous une idée?
    Merci.

    J'utilise POI 3.16

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Pour ma part avec POI 4.1 et Office 2016 c'est OK avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    package poi.euro;
     
    import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
    import org.apache.poi.ss.usermodel.CellType;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
     
    import java.awt.Desktop;
    import java.io.IOException;
    import java.nio.file.Files;
    import java.nio.file.Paths;
     
    public final class Main {
        public static void main(String... args) throws IOException, InvalidFormatException {
            final var target = Paths.get("testeuro.xlsx");
            try (final var workbook = new XSSFWorkbook()) {
                final var sheet = workbook.createSheet();
                final var row = sheet.createRow(0);
                final var dataFormat = workbook.createDataFormat();
                final var euroFormat = dataFormat.getFormat("#,##0.00 €");
                final var euroStyle = workbook.createCellStyle();
                euroStyle.setDataFormat(euroFormat);
                final var cell = row.createCell(0);
                cell.setCellType(CellType.NUMERIC);
                cell.setCellStyle(euroStyle);
                cell.setCellValue(350.25);
                try (final var output = Files.newOutputStream(target)) {
                    workbook.write(output);
                }
                Desktop.getDesktop().open(target.toFile());
            }
        }
    }
    Si j'utilise HSSFDataFormat.getBuiltinFormat() au lieu de dataFormat.getFormat() cela ne semble pas fonctionner.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    HSSFDataFormat.getBuiltinFormat() est supposé retourné le formateur interne d'excel le plus adapté à la chaîne envoyée en paramètre, peut-être que la version sur le poste concerné ne l'a pas.
    Pour créer un nouveau format pour une cellule, j'utilise ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cellDateStyle.setDataFormat(helper.createDataFormat().getFormat("dd/mm/yyyy"));
    avec helper défini comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XSSFCreationHelper helper = workbook.getCreationHelper();
    Dans la doc, on a ceci
    • getFormat

      short getFormat(java.lang.String format) get the format index that matches the given format string. Creates a new format if one is not found. Aliases text to the proper format.
      Parameters:format - string matching a built in formatReturns:index of format.
    Essaye éventuellement cette solution avec ton format, ou l'option de bouye si ça fonctionne...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Février 2015
    Messages : 402
    Points : 153
    Points
    153
    Par défaut
    Merci pour vos réponses.
    La solution de bouye marche bien.
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/03/2017, 11h38
  2. Réponses: 6
    Dernier message: 29/12/2014, 15h43
  3. Réponses: 13
    Dernier message: 03/09/2013, 13h31
  4. Comment lire le contenu en arabe d'une cellule excel avec
    Par deneche dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/03/2006, 10h01
  5. Remplir les cellules Excel avec des variables VB
    Par rupeni dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/11/2005, 09h31

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