Bei deinem Code ist schon der Ansatz falsch.
Exportiert wird nicht ein DBGrid, sondern ein
TDataset.
Ob ein Feld exportiert wird, wird durch das Property
Visible jedes Feldes entschieden.
Der Ablauf ist so:
eine Schleife über Dataset.Fields[]; wenn Feld Visible ist, dann fields[i].FieldName rausschreiben.
Dann eine Schleife über alle Datensätze:
Delphi-Quellcode:
while not dataset.eof do
begin
// ***
dataset.Next
end;
Dort wo die drei *** stehen, eine Schleife über alle Felder und fields[i].DisplayText rausschreiben.