Exporter un DBGrid vers un fichier XML
Par Delphi Source - March 21, 2026 · Vues: 29 · Catégories: Snippets · Tags: #DBGrid #XML

Exporter un DBGrid vers un fichier XML

Principe de fonctionnement

L’export repose sur une logique simple :

  • Parcourir le dataset associé au TDBGrid

  • Pour chaque enregistrement, créer une balise <Record>

  • Pour chaque champ, générer une balise portant le nom du champ et contenant sa valeur

  • Sauvegarder le tout dans un fichier XML bien formé (utf‑8, version 1.0)

{ Exporte les données du DBGrid dans un fichier XML. 
  L'export se fait en parcourant le dataset associé et en créant pour chaque ligne une balise &lt;Record&gt; 
  contenant pour chaque colonne une balise dont le nom est le nom du champ et le contenu la valeur de la cellule. } 
procedure TForm1.ExportDBGridToXML(Grid: TDBGrid; const AFileName: string); 
var 
  XMLDoc: IXMLDocument; 
  RootNode, RecordNode, FieldNode: IXMLNode; 
  i: Integer; 
begin 
  XMLDoc := TXMLDocument.Create(nil); 
  XMLDoc.Active := True; 
  XMLDoc.Version := '1.0'; 
  XMLDoc.Encoding := 'utf-8'; 
  
  // Crée le noeud racine 
  RootNode := XMLDoc.AddChild('Records'); 
  
  // On désactive temporairement les contrôles du dataset pour améliorer la performance 
  Grid.DataSource.DataSet.DisableControls; 
  try 
    Grid.DataSource.DataSet.First; 
    while not Grid.DataSource.DataSet.Eof do 
    begin 
      // Pour chaque enregistrement, on ajoute un noeud &lt;Record&gt; 
      RecordNode := RootNode.AddChild('Record'); 
  
      // Pour chaque colonne du grid, on récupère la valeur du champ et on l'ajoute en tant que noeud enfant 
      for i := 0 to Grid.Columns.Count - 1 do 
      begin 
        if Assigned(Grid.Columns[i].Field) then 
        begin 
          FieldNode := RecordNode.AddChild(Grid.Columns[i].Field.FieldName); 
          FieldNode.Text := Grid.Columns[i].Field.AsString; 
        end; 
      end; 
  
      Grid.DataSource.DataSet.Next; 
    end; 
  finally 
    Grid.DataSource.DataSet.EnableControls; 
  end; 
  
  // Enregistre le document XML dans le fichier spécifié 
  XMLDoc.SaveToFile(AFileName); 
end; 
   
{ Au clic sur le bouton, on exporte les données du DBGrid dans un fichier XML } 
procedure TForm1.ButtonExportClick(Sender: TObject); 
begin 
  ExportDBGridToXML(DBGrid1, 'export.xml'); 
  ShowMessage('Données exportées vers export.xml'); 
end;



Un petit clic (J'aime) qui fait plaisir !