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

C# Discussion :

Exporter vers Libre Office


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 234
    Points : 130
    Points
    130
    Par défaut Exporter vers Libre Office
    Bonjour,


    Mon appli a été écrite avec Visual Studio 2005, c#.
    Elle permet sans problème de faire des exportations de ma base de données vers Excell.
    Mais quelqu'un a -t-il un exemple d'exportation vers Libre Office.


    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Bonjour,

    Si c'est pour du tableur, EPPLUS permet de générer des fichiers OfficeOpenXML qui sont utilisables dans excel, openoffice et libreoffice ...
    Pour du traitement de texte, je ne sais pas je n'ai eu à la faire que pour du word, mais je pense qu'il doit y avoir des équivalents...

    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  3. #3
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Oui c'est possible. Quant à la charge de travail que cela représente, cela dépend de comment est réalisée l'exportation actuellement.

    Il y a de nombreuses solutions. Aussi, peux-tu nous en dire plus sur le contexte. Notamment, l'application est-elle un client lourd ou une appli Web ? Quelle est la solution d'exportation mise en oeuvre aujourd'hui ?
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  4. #4
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 234
    Points : 130
    Points
    130
    Par défaut
    Bonjour Dorinf,

    Mon appli:
    Le programme est installé sur tous les postes, et le serveur n'est utilisé que comme serveur de fichier qui répond aux requêtes des utilisateurs.
    Dans la plupart des cas, l'exportation vers Excel consiste à exporter des données affichées dans un datagrid.
    J'ai trouvé le code sur developpez.com, et même si les temps d'exécution sont très longs, ça a au moins le mérite d'exister.

    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
     
     // Export to EXCEL
     
    Microsoft.Office.Interop.Excel.Application xlApp = null;
    Microsoft.Office.Interop.Excel.Workbook xlBook = null;
    Microsoft.Office.Interop.Excel.Worksheet xlSheet;
    Object missing = Missing.Value;
     
    xlApp = new Microsoft.Office.Interop.Excel.Application();
     
    xlBook = xlApp.Workbooks.Add(missing);
    xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.ActiveSheet;
     
    for (int iCol = 0; iCol < dtg1.ColumnCount; iCol++)
    {
           xlSheet.Cells[1, iCol] = dtg1.Columns[iCol].HeaderText;
     
           for (int iRow = 0; iRow < dtg1.RowCount; iRow++)
           {
                if (dtg1[iCol, iRow].Value.ToString().Trim() != "")
                {
                                // On rajoute un peu de code pour gérer les 0 en début de chaines de caractère
                                // ainsi que les alphanumériques commençant par "+", "-", "=" 
                                // et on écrit dans la cellule
                       xlSheet.Cells[iRow + 2, iCol] = dtg1[iCol, iRow].Value.ToString().Trim();
                }
          }
    }
    Et à la fin on sauvegarde le fichier Excel.

    Bref, c'est du grand classique.

    Sauf que pour que cela fonctionne, il faut bien sur qu'Excel soit installé sur le PC, ce qui n'est pas le cas des inconditionnels de Libre Office.

    Entretemps, j'ai trouvé la solution de rechange, qui consiste à exporter dans un fichier texte .csv.
    C'est lisible par Excel, par Libre Office et surtout les temps d'exécution sont sans comparaison !!!

    S'il existe un équivalent de mon code pour Libre Office, je suis curieux de le voir.
    Sinon je vais opter mon l'exportation au format texte.


    Merci

    HENRYC

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Bonjour,

    A la vue de ton dernier post je reviens à la charge avec mon EPPLUS. C'est clairement ce qu'il te faut visiblement.
    Tu n'auras plus besoin d'avoir office sur les postes utilisateurs, c'est rapide, et les fichiers peuvent être lus (mise en forme comprise) par libreOffice.

    Si un peu de code t'aide à te convaincre, voici un petit bout de code qui créer un fichier .xlsx, ajoute un onglet 'worksheetName' au fichier , et rempli l'onglet avec ce qui est contenue dans la DataTable 'dt', en commençant à la ligne numéro 'firstRowOffset' et applique le style de tableau 'tableStyle'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    FileInfo newFile = new FileInfo(fullXlsxFilePath);
    using (ExcelPackage pck = new ExcelPackage(newFile))
    {
        ExcelWorksheet ws = pck.Workbook.Worksheets.Add(worksheetName);
        ws.Cells["A"+ firstRowOffset].LoadFromDataTable(dt, true, tableStyle);
        pck.Save();
    }
    bon code,
    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 234
    Points : 130
    Points
    130
    Par défaut
    OK Jack,


    Merci pour ton code, je vais creuser tout cela et je te tiens informé.



    HENRYC

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

Discussions similaires

  1. [OpenOffice][Base de données] Conversion, exportation d'open-office base et calc vers Mysql.
    Par Invité dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 14/05/2010, 08h16
  2. Réponses: 0
    Dernier message: 27/01/2010, 08h22
  3. [AC-2003] Exportation Access vers Excel (Office 2003).
    Par Richard_35 dans le forum Access
    Réponses: 3
    Dernier message: 18/11/2009, 16h58
  4. Export table/requête vers open office calc
    Par lineaire dans le forum Access
    Réponses: 1
    Dernier message: 13/11/2007, 13h26
  5. Liaison Office / Exporter vers MS Excel
    Par oceanediana dans le forum Access
    Réponses: 4
    Dernier message: 28/07/2006, 11h12

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