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

  1. #1
    Futur Membre du Club
    Inscrit en
    novembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut a/s Export fichier Excel avec plusieurs sheets vers fichier Pdf via Delphi
    Bonjour,

    Je souhaite exporter fichier excel avec plusieurs sheets (Feuillets) vers fichier Pdf par programme Delphi.
    L'exportation d'un fichier avec un seul sheet (Feuillet) fonctionne très bien, mais pour plusieurs ça ne marche pas du tout.
    Vous demande de bien vouloir m'aider avec mes remerciements anticipés.
    Cordialement.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 624
    Points
    34 624
    Billets dans le blog
    54
    Par défaut
    Bonjour,

    L'exportation d'un fichier avec un seul sheet (Feuillet) fonctionne très bien, mais pour plusieurs ça ne marche pas du tout.
    Quel code/composants utilisez-vous ? Il s'agit peut-être simplement d'une navigation entre feuilles que vous ne savez pas faire
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  3. #3
    Futur Membre du Club
    Inscrit en
    novembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut A/S export fichier excel vers PDF
    Bonjour,
    J'utilise l'exemple ci_dessus:

    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
    procedure TForm1.Button1Click(Sender: TObject);
    var
      XlApp, XlBook, XlSheet: Variant;
      XlsFile, PdfFile: String;
    const
        XlFixedFormatType = $00000000;    //--   xlTypePDF -
        XlQuality              = $00000000;    //--   xlQualityStandard -
    begin
      try
        XlsFile  :=  GetCurrentDir+'\Test.xls';   ---------->  Contient trois Sheets (Feuillets)
        PdfFile  :=  GetCurrentDir+'\Test.pdf';
    
        XlApp                   := CreateOleObject('Excel.Application');
        XlApp.Visible          := False;
        XlApp.DisplayAlerts := False;
    
        XlBook   := XlApp.WorkBooks.Open(XlsFile);
        XlSheet := XlBook.Sheets[1];
        XlSheet.Activate;
    
        XlSheet.ExportAsFixedFormat(XlFixedFormatType,PdfFile,XlQuality,True,True,1,3,True);
        XlApp.Quit;
        ShowMessage('Fichier PDF crée !');      --------> en sortie le fichier PDF contient les 3 feuillets dont le 1er contient des informations, les 2 autres sont vides
      except
        ShowMessage('Fichier PDF non crée !');
      end;
      XlSheet := Unassigned;
      XlBook  := Unassigned;
      XlApp   := Unassigned;
    end;
    Je vous remercie de m'avoir répondu et vous vous êtes intéressé à mon problème.
    Avec cet exemple, le fichier PDF ne contient que le premier sheet (Feuillet), les deux autres n'y figurent pas. Remerciements pour votre aide.

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    mars 2005
    Messages
    3 582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : mars 2005
    Messages : 3 582
    Points : 10 245
    Points
    10 245
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Il ne me paraît pas absurde qu'appliquer une méthode à une feuille du classeur n'aille pas chercher les autres.
    Une simple recherche sur le nom de la méthode : https://www.qwant.com/?client=brz-mo...edFormat&t=web sort en premier un lien intéressant.
    La méthode s'applique également à un classeur, ce qui te permettrait sûrement d'obtenir le résultat voulu.
    Delphi 5 Pro - Delphi 10.3.2 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    12 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 12 812
    Points : 34 624
    Points
    34 624
    Billets dans le blog
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XlSheet.ExportAsFixedFormat(XlFixedFormatType,PdfFile,XlQuality,True,True,1,3,True);
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  6. #6
    Futur Membre du Club
    Inscrit en
    novembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut a/s export xls to Pdf
    Citation Envoyé par SergioMaster Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XlSheet.ExportAsFixedFormat(XlFixedFormatType,PdfFile,XlQuality,True,True,1,3,True);
    Remerciements pour vos réponses, j'ai modifié la commande XlSheet.ExportAsFixedFormat(XlFixedFormatType,PdfFile,XlQuality,True,True,1,3,True) comme suggérée par SergioMaster, j'obtiens les 3 pages PDF, mais malheureusement, seule la première page contient des informations, les deux autres sont vides.
    Ce que je ne comprends dans l'exemple donné que j'ai mis en ligne, on ne sélectionne et on active que le sheet 1:
    XlSheet := XlBook.Sheets[1];
    XlSheet.Activate;
    La question posée, Pourquoi ?


    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
    var
      XlApp, XlBook, XlSheet, ActiveSheet: Variant;
      XlsFile, PdfFile: String;
    const
        XlFixedFormatType = $00000000;       //--  xlTypePDF -
        XlQuality                = $00000000;       //--  xlQualityStandard -
    begin
      XlsFile := GetCurrentDir+'\Etat.xlsx';
      PdfFile := GetCurrentDir+'\Etat.pdf';
      try
        XlApp                   := CreateOleObject('Excel.Application');
        XlApp.Visible          := False;
        XlApp.DisplayAlerts := False;
        XlBook  := XlApp.WorkBooks.Open(XlsFile);
     
        XlSheet := XlBook.Sheets[1];   
        XlSheet.Activate;
    
        try
          XlSheet.ExportAsFixedFormat(XlFixedFormatType,PdfFile,XlQuality,True,False,1,3,True);
          ShowMessage('Fichier PDF crée !');
        finally
        end;
      except
        ShowMessage('Fichier PDF non crée !');
      end;
      XlApp.Quit;
      XlSheet := Unassigned;
      XlBook  :=  Unassigned;
      XlApp   :=  Unassigned;

  7. #7
    Membre à l'essai
    Profil pro
    Retraité Université de Strasbourg
    Inscrit en
    janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité Université de Strasbourg

    Informations forums :
    Inscription : janvier 2007
    Messages : 8
    Points : 15
    Points
    15
    Par défaut

    XlBook := XlApp.WorkBooks.Open(XlsFile);

    XlSheet := XlBook.Sheets[1];
    XlSheet.Activate;


    try
    XlSheet.ExportAsFixedFormat(XlFixedFormatType,PdfFile,XlQuality,True,False,1,3,True);
    ShowMessage('Fichier PDF crée !');
    Voici ma proposition (fonctionne avec Delphi 10.4 et Excel 2016) :
    Utiliser XlBook au lieu de XlSheet!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            XlBook := XlApp.WorkBooks.Open(XlsFile);
    
                try
                   XlBook.ExportAsFixedFormat(XlFixedFormatType, PdfFext,
                      XlQuality, True, False, 1, 3, True);

  8. #8
    Futur Membre du Club
    Inscrit en
    novembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut a/s export Excel vers Pdf
    Citation Envoyé par jbrosse Voir le message
    Voici ma proposition (fonctionne avec Delphi 10.4 et Excel 2016) :
    Utiliser XlBook au lieu de XlSheet!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            XlBook := XlApp.WorkBooks.Open(XlsFile);
    
                try
                   XlBook.ExportAsFixedFormat(XlFixedFormatType, PdfFext,
                      XlQuality, True, False, 1, 3, True);
    Remerciements, à jbrosse et à ceux qui ont contribué en donnant des solutions ou des idées allant dans le sens de l'amélioration de la solution, le problème est résolu
    en remplaçant comme demandé par jbrosse, XlSheet.ExportAsFixedFormat(....) par XlBook.ExportAsFixedFormat(.......).
    Merci pour toute votre aide.

  9. #9
    Futur Membre du Club
    Inscrit en
    novembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut a/s export fichier excel vers pdf
    Bonjour,
    la solution données par jbrosse me permet de convertir tous les feuillets Excel, mais si le feuillet dépasse un certain nombre de lignes (plus de 48 lignes), la conversion se fait uniquement sur les 48 premières lignes, le reste n'est pas converti vers PDF, donc j'obtiens un état incomplet en Pdf. Souhaite votre aide pour pouvoir convertir et obtenir l'image complète du fichier Excel quelque soit le nombre de lignes. Remerciements anticipés.

  10. #10
    Membre à l'essai
    Profil pro
    Retraité Université de Strasbourg
    Inscrit en
    janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité Université de Strasbourg

    Informations forums :
    Inscription : janvier 2007
    Messages : 8
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Ben ali Voir le message
    Bonjour,
    la solution donnée par jbrosse me permet de convertir tous les feuillets Excel, mais si le feuillet dépasse un certain nombre de lignes (plus de 48 lignes), la conversion se fait uniquement sur les 48 premières lignes, le reste n'est pas converti vers PDF, donc j'obtiens un état incomplet en Pdf. Souhaite votre aide pour pouvoir convertir et obtenir l'image complète du fichier Excel quelque soit le nombre de lignes. Remerciements anticipés.
    Hypothèse : la commande
    XlBook.ExportAsFixedFormat(XlFixedFormatType, PdfFext, XlQuality, True, False, 1, 3, True);
    demande d'imprimer de la page 1 à la page 3

    Essaie ceci (fonctionne chez moi) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     XlBook.ExportAsFixedFormat(XlFixedFormatType, PdfFext,
                      XlQuality, True, False, 1, , True);
    ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     XlBook.ExportAsFixedFormat(XlFixedFormatType, PdfFext,
                      XlQuality, True, False, 1, 9999, True);
    Le nombre de pages à imprimer est géré par Excel (y compris les sauts de pages manuels) . Pour le moment, je ne sais pas le calculer depuis Delphi.

    Cordialement
    Jacques

  11. #11
    Futur Membre du Club
    Inscrit en
    novembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut a/s export fichier excel vers pdf
    Bonjour,
    merci pour votre réponse.
    Je m'explique dans ce qui suit:
    - Supposons que j'ai une fichier Excel contenant qu'un seul feuillet de 70 lignes, la conversion Excel vers PDF se passe bien mais ne contient
    qu'une page de 50 lignes, le reste des lignes (51 à 70) n'existe pas, donc j'obtiens une état incomplet d'une seule page de 50 lignes.
    Ce que je souhaite si possible d'obtenir le feuillet complet de deux (02) pages en PDF.

    Remerciements anticipés avec l'espoir de ne pas vous avoir trop importuné.

    Cordialement
    Benali

  12. #12
    Membre à l'essai
    Profil pro
    Retraité Université de Strasbourg
    Inscrit en
    janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité Université de Strasbourg

    Informations forums :
    Inscription : janvier 2007
    Messages : 8
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Ben ali Voir le message
    Bonjour,
    Je m'explique dans ce qui suit:
    - Supposons que j'ai une fichier Excel contenant qu'un seul feuillet de 70 lignes, la conversion Excel vers PDF se passe bien mais ne contient
    qu'une page de 50 lignes, le reste des lignes (51 à 70) n'existe pas, donc j'obtiens une état incomplet d'une seule page de 50 lignes.
    Ce que je souhaite si possible d'obtenir le feuillet complet de deux (02) pages en PDF.
    Je n'ai pas ce genre de problème d'affichage (ex. 100 lignes avec 3 sauts de pages -> 4 pages créées dans le fichier PDF)
    Peut-être s'agit-il d'un problème de définition de la zone d'impression dans le fichier Excel lui-même?

    Voici l'étude que j'ai faite : EsExcel.zip, peut-être pourra-t-elle t'être utile (c'est mon premier essai d'envoi, j'espère ne rien avoir oublié!)

    Cordialement
    Jacques

  13. #13
    Membre à l'essai
    Profil pro
    Retraité Université de Strasbourg
    Inscrit en
    janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Retraité Université de Strasbourg

    Informations forums :
    Inscription : janvier 2007
    Messages : 8
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par jbrosse Voir le message
    (c'est mon premier essai d'envoi, j'espère ne rien avoir oublié!)
    Visiblement l'essai n'était pas encore parfait.

    Je retente un envoi : EsExcel.zip

    Jacques

  14. #14
    Futur Membre du Club
    Inscrit en
    novembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut a/s export fichier excel vers pdf
    Bonjour monsieur Jacques,

    Vous remercie pour votre aide, votre exemple "EsExcel.zip" me donne les résultats souhaités et je tiens encore à vous remercier pour votre disponibilité et de m'avoir consacré un moment de votre précieux temps pour solutionner le problème.
    Remerciements anticipés.

    Cordialement.

    Ben ali.

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

Discussions similaires

  1. [AC-2016] Export fichier Excel avec plusieurs feuilles
    Par Pittouti dans le forum VBA Access
    Réponses: 15
    Dernier message: 27/11/2019, 16h59
  2. Créer un fichier excel avec plusieurs feuilles à partir d'un fichier html
    Par yuukuari dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/12/2009, 16h07
  3. Réponses: 4
    Dernier message: 12/05/2009, 12h21
  4. [CR XI] export vers excel avec plusieurs onglets
    Par mickamar51 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 06/10/2008, 10h34
  5. Générer un Fichier EXCEL avec plusieur onglet.
    Par Portoss dans le forum kettle/PDI
    Réponses: 1
    Dernier message: 16/06/2008, 17h25

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