Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Xlsx To Csv Konvertierer gesucht

  Alt 22. Jan 2011, 10:38
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
Angehängte Dateien
Dateityp: zip XlsxToCsv.zip (561,5 KB, 49x aufgerufen)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (22. Jan 2011 um 13:34 Uhr)
  Mit Zitat antworten Zitat