Dafür ist doch (quasi) alles an Bord ...
Zuerst
diesen Treiber von MS laden
Und dann schaust du dir das kleine Projekt im Anhang an
(würde ich ja gerne, wenn ich Anhänge hochladen könnte
aber der dreht sich hier nen Wolf)
EDIT Na endlich hat es geklappert
Das Geheimnis liegt im ConnectionString der ADOConnection
Delphi-Quellcode:
const
// Per Format %s mit dem Dateinamen der XLSX-Datei ersetzen
// HDR=YES => Tabelle hat Titelzeilen
// IMEX=1 => alle Werte als Text einlesen
XLSXConnectionString = '
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";';
Nach dem Öffnen der ADOConnection bekommt man mit GetTableNames( Strings : TStrings ) alle enthaltenen Tabellen aufgelistet.
Mittels einer ADOTable ( TableDirect := True !!! ) einfach einen TabellenNamen bei TableName eintragen und öffnen.
Jetzt braucht man nur noch eine Routine, die das DataSet in eine
CSV-Datei schreibt (Hausmannskost) ... und fertig
EDIT
Ich sollte vielleicht anmerken, dass ich in meiner Beispielanwendung einen class helper (eigene
Unit insDataSetHelpr ist
nicht dabei) für TDataSet verwende, der selbiges um die Methode ExportToCSV erweitert.
Somit ist der Beispiel-Source nicht compilierbar ... (exe ist ja dabei) ... aber der Kern bleibt ja das Öffnen der Excel-Tabelle als DataSet und das kann man sehen
Und so ein class helper oder procedure zum Ausgeben in
CSV ist ja schnell getippselt