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

Bases de données Delphi Discussion :

Base de données


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Base de données
    Bonjour tout le monde,
    Quelqu'un pourrait me dire comment convertir un fichier excel en xml.
    Existe-t-il un composant dans l'EDI de Delphi? Si oui, alors comment doit-on y procéder? Sinon, alors quelqu'un a déjà travaillé sur ce sujet? et si possible me donner une idée comment m'y prendre?

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Excel possède déjà un format XML : XLSX Office Open XML

    Le XML n'est pas un format en soit, il te faut en plus une sémantique et un schéma mais Excel en OLE, je crois que SaveAs fourni une version XML voir l'énumération XlFileFormat à la valeur xlXMLSpreadsheet

    en reprenant le sujet comment copier les donnés d'une table vers un fichier exel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
           ExcelOle:= CreateOleObject('Excel.Application');
           try
             ExcelOle.Visible := False;
             ExcelOle.WorkBooks.Open(NomDuFichierExcel);
     
             ExcelOle.ActiveWorkBook.SaveAs(Filename := NomDuFichierXML, FileFormat := 46 (*xlXMLSpreadsheet*));         
          finally
             ExcelOle.Visible := True;
             ExcelOle.UserControl := True;
             ExcelOle := Unassigned;
          end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Merci d'avoir répondu. Au fait ma situation est la suivante:
    J'ai un fichier Excel, un DBGrid, un ClientDataSet. J'ai besoin d'importer les données du fichier Excel dans le DataSet et de les visualiser sur le DBGrid, en utilisant la fonction LoadFromFile(). Or pour pouvoir utiliser cette fonction, il faut que le fichier de données soit du xml. Donc, je cherche à savoir s'il n'y a pas un moyen de répondre à ce besoin en passant par fichier xls --> fichier xml --> utiliser clientdataset.LoadFromFile(xml) ==>affichage données sur DBGrid.

    PS. Je suis conscient qu'importer des données depuis un fichier Excel dans une base de données et vice-versa n'est pas trop à faire (d'ailleurs je l'ai déjà fait), mais juste trouver une méthode telle est décrite dessus afin de développer moins de lignes de code.

    Merci.

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Excel fourni un Driver ODBC, utilise ADO pour avoir un DataSet
    C'est le plus simple !


    Sinon, procède comme je l'ai proposé avec xlXMLSpreadsheet et avec un XSLT tu pourras transformer le XML Excel en un XML Midas (format du TClientDataSet)

    Comme je le disais le XML est un format évolutif, la sémantique entre les deux XML peut-être très différente, le XSLT de transformation pourra être pénible à écrire !

    le XML sera une solution plus difficile et longue à écrire
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Bon, cela ne va certainement pas plaire à tout le monde, mais cela fonctionne !

    J'ai eu ce problème et je l'ai résolu en lisant le fichier Excel avec Open Office. Et passer de Open Office vers une base est parfaitement décrit dans les FAQ et, je dois le reconnaître, vraiment assez simple.

    En plus l'installation de Open Office est simple et gratuite.

    Ceci dit, chacun son choix
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Merci pour les solutions que tu as apportées.

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

Discussions similaires

  1. Problème Base de données et CRecordSet
    Par LE CHAKAL dans le forum MFC
    Réponses: 3
    Dernier message: 20/08/2002, 11h59
  2. connexion base de donné
    Par saidi dans le forum MFC
    Réponses: 3
    Dernier message: 07/08/2002, 22h22
  3. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16
  4. Bases de données
    Par dev dans le forum C++Builder
    Réponses: 4
    Dernier message: 01/07/2002, 22h55
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18

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