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

 Delphi Discussion :

TStringGrid vers Excel


Sujet :

Delphi

  1. #1
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut TStringGrid vers Excel
    Bonjour,

    J'utilise la méthode suivante pour exporter un TStringGrid vers une feuille Excel : http://delphi.developpez.com/faq/?pa...tringgridexcel

    Le problème est qu'à l'ouverture du fichier généré, beaucoup de caractères parasites sont présents dans mes valeurs exportées (Ce sont des carrés).

    Exemple : "Vide" est écrit dans Excel : V<carré>i<carré>

    Je ne sais pas d'où peut venir le problème ?

    Je suis sous Delphi XE.

    Merci
    Let there be light, sound, drums, guitar ... Let there be rock !

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    problème d'AnsiString et Unicode ?
    Delphi 5 Pro - Delphi 11.3 Alexandria 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 !

  3. #3
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut
    Bonjour,

    Merci pour ta réponse. Ce paramétrage peut se voir où ? Vous gérez l'encodage depuis le composant "TFileStream" ?

    Merci
    Let there be light, sound, drums, guitar ... Let there be rock !

  4. #4
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut
    J'ai trouvé la réponse.

    Dans la procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word; const AValue: string);
    Remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XlsStream.WriteBuffer(Pointer(AValue)^, L);
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XlsStream.WriteBuffer(Pointer(AnsiString(AValue))^, L);
    Let there be light, sound, drums, guitar ... Let there be rock !

  5. #5
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut
    De fait il faut remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word;
      const AValue: string);
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word;
      const AValue: Ansistring);
    Excel me donne toutefois un message d'avertissement à l'ouverture du fichier créé
    Le processus Validation de fichier Office a détecté un problème à l ouverture de ce fichier. Son ouverture risque d être dangereuse.
    ???

    Par ailleur si quelqu'un peut me dire comment sauver les données dans une autre feuille que la feuille1?



    Merci,
    PhilLu

  6. #6
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    C'est un vieux format d'excel (excel 5.0 je crois) qui compte des failles de sécurité. Donc pas possible d'enlever l'avertissement à l'ouverture (sauf peut-être en configurant Excel, mais déconseillé).

    Par contre je n'ai pas de solution gratuite pour un export vers excel. (peut-être passer par du csv).
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  7. #7
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par Linkin Voir le message
    C'est un vieux format d'excel (excel 5.0 je crois) qui compte des failles de sécurité. Donc pas possible d'enlever l'avertissement à l'ouverture (sauf peut-être en configurant Excel, mais déconseillé).

    Par contre je n'ai pas de solution gratuite pour un export vers excel. (peut-être passer par du csv).
    Merci pour ta réponse
    ...une idée comment envoyer vers la feuille 2?

    A+

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

Discussions similaires

  1. Comment exporter un TStringGrid vers Excel par Linkin
    Par MelkInarian dans le forum Delphi
    Réponses: 2
    Dernier message: 09/02/2007, 09h37
  2. Access vers excel
    Par tiopan dans le forum Access
    Réponses: 6
    Dernier message: 05/12/2003, 08h43
  3. [CR] Exportation vers Excel
    Par djamel64 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 01/12/2003, 14h52
  4. exportation vers excel
    Par Pm dans le forum XMLRAD
    Réponses: 3
    Dernier message: 24/01/2003, 14h48
  5. [] [Excel] Exporter un graphe MSChart vers Excel
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/12/2002, 17h49

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