Einzelnen Beitrag anzeigen

Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#18

AW: Excel-Tabelle in Stringgrid einlesen!

  Alt 9. Jan 2019, 08:35
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)
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat