İki farklı proje aynı excelden, aynı kodları kullanıyorum, excelden listview veri çekiyorum, birinde çalışan kodlar diğer projede hata veriyor. (Exception class EStringListError with message 'List index out of bounds (5)'.) Bu hata neden kaynaklı olabilir....
Kod: Tümünü seç
procedure TForm5.excelButtonClick(Sender: TObject);
const
xlCellTypeLastCell = $0000000B;
var
Str: String;
Book: Variant;
Excel, Sheet: Variant;
Satir, SSay: Integer;
begin
try
Excel := CreateOleObject('Excel.Application');
With TOpenDialog.Create(Nil) do
begin
Filter := 'Excel *.xls,*.xlsx|*.xls;*.xlsx';
FilterIndex := 1;
if Execute then
begin
Book := Excel.WorkBooks.Open(FileName);
Sheet := Book.worksheets[1];
SSay := Excel.ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell,
EmptyParam).Row;
for Satir := 1 to SSay do
begin
Screen.Cursor := crHourGlass;
Str := Sheet.Cells[Satir, 1];
with PlaylistListView.Items.Add do
begin
Caption := IntToStr(ListView1.Items.Count);
SubItems.Add(Sheet.Cells[Satir, 1]);
SubItems.Add(Sheet.Cells[Satir, 2]);
SubItems.Add(Sheet.Cells[Satir, 3]);
SubItems.Add(Sheet.Cells[Satir, 4]);
SubItems.Add(Sheet.Cells[Satir, 5]);
SubItems.Add(Sheet.Cells[Satir, 6]);
SubItems.Add(Sheet.Cells[Satir, 7]);
SubItems.Add(Sheet.Cells[Satir, 8]);
Next;
end;
end;
Screen.Cursor := crDefault;
Excel.WorkBooks.Close;
Excel.quit;
Excel := Unassigned;
Sheet := Unassigned;
end;
end;
except
end;
end;