Ich lese eine Excel
CSV in MEHRERE Stringgrids ein (Ein Stringgrid = Ein Tabellenblatt).
Von HolgerX eine .pas:
https://www.delphipraxis.net/1399704-post14.html
Kleine Änderungen von mir:
https://www.delphipraxis.net/1412808-post14.html
Diese ins Programm einbinden
Im Programm wird es dann so aufgerufen (FXLApp ist nur ein
beliebiger Name für die OleVariant):
Laden (für jedes Tabllenblatt:
Delphi-Quellcode:
OpenExcel(DATEINAME, FXLApp);
Xls_To_StringGrid(FXLApp, STRINGGRID, TABELLENBLATTNAME);
Falls du die Spaltenbreite auch anpassen willst nach dem befüllen:
GridColWidth(STRINGRID,1,0);
Delphi-Quellcode:
//Stringgrid Spaltenbreite anpassen
procedure GridColWidth(grd:TStringGrid;min,max:word);
var
Zeile,Spalte,tmp,len: word;
begin
with grd do begin // für alle Spalten
for Spalte:=0 to (ColCount -1) do begin
len:=0;
for Zeile:=0 to (RowCount-1) do begin // für alle Zeilen
tmp:=Canvas.TextWidth(Cells[Spalte,Zeile]);
if tmp>len then len:=tmp // neue max Breite
end; // for Zeile
if max>0 then if len>max then len:=max; // Maximalbreite
if len<min then len:=min; // Minimalbreite
ColWidths[Spalte]:=len+GridLineWidth+10 // Spalte verbreitern
end // for Spalte
end // with
end;
Wieder in Excel Speichern:
SaveExcel(FXLApp)