// Die letzte Zeile einer Excel-Tabelle wird in eine Listbox eingelesen.


// Getestet mit D4 unter XP

uses comobj; 
 
var xcl: OleVariant; 
 
const 
  xlCellTypeLastCell = 11; 
 
function spaltenname(x: integer): string; 
begin 
  if x < 26 then result := chr(x + 65) else 
    result := chr(x div 26 + 64) + chr(x mod 26 + 65); 
end; 
 
procedure LastRow(Datei: string; list: TStrings); 
var x, i, j: integer; 
begin 
  list.clear; 
  xcl := createOleObject('Excel.Application'); 
  xcl.Workbooks.Open(Datei); 
  j := xcl.Cells.SpecialCells(xlCellTypeLastCell).Row; 
  i := xcl.Cells.SpecialCells(xlCellTypeLastCell).Column; 
  for x := 1 to i do 
    list.add(xcl.range[spaltenname(x - 1) + inttostr(j)]); 
  xcl.quit; 
end; 
 
// Aufruf 
procedure TForm1.Button1Click(Sender: TObject); 
var Datei: string; 
begin 
  Datei := 'C:\test.xls'; 
  Lastrow(Datei, Listbox1.items); 
end; 
 
// Falls Absturz 
procedure TForm1.FormDestroy(Sender: TObject); 
begin 
  if not VarIsEmpty(xcl) then xcl.quit; 
end;



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke