Exportation access vers excel

Description

Demo : Comment exporter des données d'une table Access vers Excel.

Exemple avec une base de données de gestion de contact.

Source / Exemple :


// Bt : Exporter le contact.
// Procedure exportation des données de la table vers excel.
procedure TFExport.BtExportClick(Sender: TObject);
Const
 Col_A = 'A';
 Col_B = 'B';
var
 StructureList,TableData : TStringList;
 I_Structure,I_TableData,PosCell : Integer;
begin
PosCell := 2;// Position de la cellule.
  // On vérifi que la base de données est bien connecté.
   if Not ADOQuery.Active = True then
     begin
       StatusBar.Panels[3].Text := 'Erreur : Absence de connexion pour l'+#39+'exportation du contact.';
       Exit;
     end;
  // On vérifi que la table n'est pas vide
   if ADOQuery.RecordCount = 0 then
    begin
      StatusBar.Panels[3].Text := 'Aucun contact dans la base de données a exporter.';
      Exit;
    end;
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  StructureList := TStringList.Create; // On créer une liste de structure.
  StructureList.Add('Groupe :');            StructureList.Add('Civilité :');     StructureList.Add('Nom :');              StructureList.Add('Prénom :');
  StructureList.Add('Date de naissance :'); StructureList.Add('Adresse :');      StructureList.Add('Code postal :');      StructureList.Add('Ville :');
  StructureList.Add('Départemment :');      StructureList.Add('Tel Portable :'); StructureList.Add('Tel Fix :');          StructureList.Add('Tel Fax :');
  StructureList.Add('Tel Pro :');           StructureList.Add('Société :');      StructureList.Add('Fonction :');         StructureList.Add('E-Mail :');
  StructureList.Add('Url :');               StructureList.Add('Commentaire :');  StructureList.Add('Date de création :'); StructureList.Add('Date de modification :');
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  TableData := TStringList.Create; // On créer une 2:éme listes pour insérer chaque données de la table dans la structure.
  TableData.Add('Groupe');      TableData.Add('Civ');      TableData.Add('Nom');        TableData.Add('Prenom');
  TableData.Add('Date_N');      TableData.Add('Adresse');  TableData.Add('Code_P');     TableData.Add('Ville');
  TableData.Add('Departement'); TableData.Add('Tel_Port'); TableData.Add('Tel_Fix');    TableData.Add('Tel_Fax');
  TableData.Add('Tel_Pro');     TableData.Add('Societe');  TableData.Add('Fonction');   TableData.Add('E_mail');
  TableData.Add('Url');         TableData.Add('Com');      TableData.Add('Date_Creat'); TableData.Add('Date_Modif');
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  // Création du lien OLE pour la classe référencé par Excel.
  ExcelApp := CreateOleObject('Excel.Application');
  StatusBar.Panels[3].Text := 'Ouverture du logiciel excel.';
  ExcelApp.visible := True; // On rendre Excel visible a l'écran.
  AppPremP; // On mais mais l'application au premier plan.
  Classeur := ExcelApp.Workbooks.Add; // On créer un nouveau document excel.
  Sleep(3000); // On attends 3 secondes.
  StatusBar.Panels[3].Text := 'Construction de la structure.';
  // On commence par construire notre structure.
  repeat // On boucle jusqu'à ce que ont a atteint la fin de la liste (StructureList).
    // On parcourt la liste (StructureList).
    for I_Structure := 0 to StructureList.Count - 1 do
     begin
       // On Sélection une cellule = A2.                                                                                                                  //
       ExcelApp.Range[Col_A + Inttostr(PosCell)].Select;
       // On insert le titre de la structure dans la cellule.
       ExcelApp.Selection.Formula := StructureList.Strings[I_Structure];
       // Appel de procedure (FontCell).
       FontCell(10,'Segoe UI','Bold');
       // On incrément la gauge (+1).
       Gauge.Progress := Gauge.Progress +1;
       Inc(PosCell); // On incrément la Sélection de la cellule (+1).
     end;
  // Fin de la boucle repeat (I_Structure = Fin de la liste).
  until I_Structure = StructureList.Count;
  StructureList.Free; // On libére de la liste (StructureList).
  PosCell := 2;// On remet la variable (PosCell) a sa valeur par défaut (2).
  Sleep(2000); // On attends 3 secondes.
  StatusBar.Panels[3].Text := 'Exportation des données en cour.';
  // On Insert les données de la table dans leur champ.
  repeat // On boucle jusqu'à ce que ont a atteint la fin de la liste (TableData).
     // On parcourt la liste (TableData).
     for I_TableData := 0 to TableData.Count - 1 do
      begin
       // On Sélection une cellule = B2.                                                                                                                  //
       ExcelApp.Range[Col_B + Inttostr(PosCell)].Select;
       // On insert chaque données de la table dans leur cellule.
       ExcelApp.Selection.Formula := ADOQuery.FieldByName(TableData.Strings[I_TableData]).Text;
       // Appel de procedure (FontCell).
       FontCell(10,'Segoe UI','Bold');
       // On incrément la gauge (+1).
       Gauge.Progress := Gauge.Progress +1;
       Inc(PosCell); // On incrément la Sélection de la cellule (+1).
      end;
  // Fin de la boucle repeat (I_TableData = Fin de la liste).
  until I_TableData = TableData.Count;
  TableData.Free; // On libére de la liste (StructureList).
  StatusBar.Panels[3].Text := 'Fin de l'+#39+'exportation du contact.';
end;

Conclusion :


Exporter les informations du contact vers Excel.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.