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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 859
    Points : 22 894
    Points
    22 894
    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.

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    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...

  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