Modification de feuilles Excel avec Delphi et ADO

Ce guide étape par étape décrit comment se connecter à Microsoft Excel, récupérer des données de feuille et activer la modification des données à l'aide de DBGrid. Vous trouverez également une liste des erreurs les plus courantes susceptibles d'apparaître au cours du processus, ainsi que la manière de les traiter..

Ce qui est couvert ci-dessous:

  • Méthodes de transfert de données entre Excel et Delphi. Comment se connecter à Excel avec ADO (ActiveX Data Objects) et Delphi.
  • Création d'un éditeur de feuille de calcul Excel à l'aide de Delphi et ADO
  • Récupération des données depuis Excel. Comment référencer une table (ou une plage) dans un classeur Excel.
  • Une discussion sur les types de champs (colonnes) Excel
  • Comment modifier des feuilles Excel: modifier, ajouter et supprimer des lignes.
  • Transfert de données d'une application Delphi vers Excel. Comment créer une feuille de calcul et la remplir avec des données personnalisées à partir d'une base de données MS Access.

Comment se connecter à Microsoft Excel

Microsoft Excel est un puissant calculateur de feuille de calcul et un outil d'analyse de données. Étant donné que les lignes et les colonnes d'une feuille de calcul Excel sont étroitement liées aux lignes et aux colonnes d'une table de base de données, de nombreux développeurs trouvent approprié de transporter leurs données dans un classeur Excel à des fins d'analyse; et récupérer les données vers l'application par la suite.

L'approche la plus couramment utilisée pour l'échange de données entre votre application et Excel est Automatisation. L'automatisation fournit un moyen de lire des données Excel à l'aide du modèle d'objet Excel pour plonger dans la feuille de calcul, extraire ses données et l'afficher dans un composant de type grille, à savoir DBGrid ou StringGrid.

L'automatisation vous offre la plus grande flexibilité pour localiser les données dans le classeur ainsi que la possibilité de formater la feuille de calcul et de définir divers paramètres au moment de l'exécution.

Pour transférer vos données vers et depuis Excel sans automatisation, vous pouvez utiliser d'autres méthodes telles que:

  • Écrire des données dans un fichier texte délimité par des virgules et laisser Excel analyser le fichier dans des cellules
  • Transférer des données à l'aide de DDE (Dynamic Data Exchange)
  • Transférez vos données vers et depuis une feuille de calcul à l'aide d'ADO

Transfert de données à l'aide d'ADO

Étant donné qu'Excel est compatible avec JET OLE DB, vous pouvez vous y connecter avec Delphi à l'aide d'ADO (dbGO ou AdoExpress), puis récupérer les données de la feuille de calcul dans un ensemble de données ADO en émettant une requête SQL (tout comme vous ouvririez un ensemble de données sur n'importe quelle table de base de données).

De cette façon, toutes les méthodes et fonctionnalités de l'objet ADODataset sont disponibles pour traiter les données Excel. En d'autres termes, l'utilisation des composants ADO vous permet de créer une application pouvant utiliser un classeur Excel comme base de données. Un autre fait important est qu'Excel est un serveur ActiveX hors processus. ADO s'exécute en cours de processus et économise les frais généraux des appels hors processus coûteux.

Lorsque vous vous connectez à Excel à l'aide d'ADO, vous pouvez uniquement échanger des données brutes vers et depuis un classeur. Une connexion ADO ne peut pas être utilisée pour le formatage de feuille ou l'implémentation de formules dans des cellules. Cependant, si vous transférez vos données vers une feuille de calcul pré-formatée, le format est conservé. Une fois les données insérées de votre application dans Excel, vous pouvez effectuer n'importe quel formatage conditionnel à l'aide d'une macro (préenregistrée) dans la feuille de calcul.

Vous pouvez vous connecter à Excel à l'aide d'ADO avec les deux fournisseurs OLE DB qui font partie de MDAC: fournisseur Microsoft Jet OLE DB ou fournisseur Microsoft OLE DB pour les pilotes ODBC. Nous nous concentrerons sur le fournisseur Jet OLE DB, qui peut être utilisé pour accéder aux données des classeurs Excel via des pilotes ISAM (Indexed Sequential Access Method) installables..

Pointe: Consultez le cours pour débutants de la programmation de base de données Delphi ADO si vous débutez avec ADO.

La magie ConnectionString

La propriété ConnectionString indique à ADO comment se connecter à la source de données. La valeur utilisée pour ConnectionString consiste en un ou plusieurs arguments qu'ADO utilise pour établir la connexion.

Dans Delphi, le composant TADOConnection encapsule l'objet de connexion ADO; il peut être partagé par plusieurs composants de l'ensemble de données ADO (TADOTable, TADOQuery, etc.) via leurs propriétés de connexion.