Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

Re: TStringList in Exceltabelle ausgeben

  Alt 30. Jun 2009, 17:41
Hallo Ferox,

in den Untiefen meiner Sammlung hab ich das hier gefunden:
Delphi-Quellcode:
procedure STRINGL2EXCELFILE(ll:tstringlist;excfile:shortstring;trenner,EndofRecord:char);
var
  i,j,pp: integer;
  ez : integer;
  excel : variant;
  satz : ansistring;
  zelle : ansistring; {!! Begrenzung kann auch ansistring sein!}
begin
  try
    excel:=createoleobject('EXCEL.APPLICATION');
  except
    showmessage('Excel kann nicht gestartet werden!');
    exit;
  end;
  //excel.visible:=true; { visible nur für test-zwecke }
  excel.workbooks.Add;
  i:=0 ;
  ez:=0; { excel-Zeilen}
  repeat
    satz:=ll[i];
    while (i<ll.count-1) and (pos(EndofRecord,satz)=0) do begin
       inc(i,1);
       satz:=satz+ll[i];
    end;
    pp:=pos(trenner,satz);
    j:=0;
    if pp>0 then repeat
      zelle:=''''+copy(satz,1,pp-1); { Textinterpretation erzwingen }
      excel.activesheet.cells(ez+1,j+1):=zelle; {cells1..x/1..y }
      delete(satz,1,pp);
      inc(j,1);
      pp:=pos(trenner,satz);
    until (pp=0) or (length(satz)<1);
    if length(satz)>0 then begin
      if satz[length(satz)]=EndofRecord then
        delete(satz,length(satz),1);
      zelle:=satz;
      excel.cells(ez+1,j+1):=zelle;
    end;
    inc(i,1);
    inc(ez,1);
  until i>ll.count-1;
  excel.ActiveWorkbook.SaveAs(Filename:=excfile);
  excel.ActiveWorkbook.Close;
end;{-- SRINGL2EXCELFILE -----------------------------------}
Das war ein Entwurf um ASCIIdelimiteds einzulesen. sollte nicht weiter schwer fallen, das anzupassen.

gruß
K-H
  Mit Zitat antworten Zitat