Das folgende Beispiel demonstriert, wie ich damals eine Excel-Tabelle in einem festen Verzeichnis importierte. Auf jedem Fall, die Funktion erzeugt einen ODBC Eintrag. Das kann man in der ODBC-Einstellung sehen. Du mußt nur noch nach deinem Bedarf anpassen.
Function CreateEXCELODBC : Boolean;
Var Reg : TRegistry;
HRootK : string;
Procedure Put2Reg;
begin
//Möchte hier eine Excel Tabelle importieren
HRootK := ‚\Software\ODBC\ODBC.INI\ImportExcel‘;
Reg.CreateKey(Hrootk);
if Reg.OpenKey(HRootK,true) then
begin
Reg.WriteString(‚Driver‘,GetSystemDir + ‚odbcjt32.dll‘ );
ExcelPath := ExtractFilePath(ParamStr(0))+ ‚ExcelImport\Excel‘;
ForceDirectories (Excelpath);
Reg.WriteString(‚DBQ‘,ExcelPath + ‚Excel2Dataset.xls‘);
Reg.WriteInteger(‚DriverId‘,00000790); //Excel 97-2000
Reg.WriteString(‚FIL‘,‚excel 8.0‘);
Reg.WriteString(‚PWD‘,’’ );
Reg.WriteInteger(‚SafeTransactions‘,0);
Reg.WriteString(‚UID‘,’’);
Reg.CloseKey;
end;
Reg.CreateKey;(’\Software\ODBC\ODBC.INI\ImportExcel’+’\Engines\Excel’);
if Reg.OpenKey(’\Software\ODBC\ODBC.INI\ImportExcel’+’\Engines\Excel’,true) then
begin
Reg.WriteString(‚ImplicitCommitSync‘,’’);
Reg.WriteInteger(‚MaxScanRows‘,00000008);
Reg.WriteInteger(‚PageTimeout‘,00000005);
Reg.WriteInteger(‚Threads‘,00000003);
Reg.Writebool(‚UserCommitSync‘,true);
Reg.CloseKey;
end;
Reg.CreateKey (’\Software\ODBC\ODBC.INI\ODBC Data Sources’);
if Reg.OpenKey(’\Software\ODBC\ODBC.INI\ODBC Data Sources’,true) then
Reg.WriteString(‚ImportExcel‘,‚Microsoft Excel-Treiber (*.xls)‘);
end;
begin
Reg := TRegistry.Create;
try
// Reg.RootKey := HKEY_CURRENT_USER;
// Put2Reg;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Put2Reg;
finally
Reg.Free;
inherited;
end;
end;
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]