Доброго времени суток!
Решено
var
i, n: Integer;
Range, Sheet: VAriant;
Excel: OleVariant;
begin
try
Excel := CreateOleObject('Excel.Application');
except
raise Exception.Create('Невозможно подключиться к серверу Excel');
end;
Screen.Cursor := crHourGlass;
Excel.SheetsInNewWorkBook := 1;
Excel.WorkBooks.Add;
Sheet := Excel.Workbooks[1].Sheets[1];
Range := Sheet.Columns;
Range.Columns[1].ColumnWidth := 30;
Range.Columns[2].ColumnWidth := 30;
Range.Columns[3].ColumnWidth := 30;
Range.Rows[1].Font.Bold := True;
for i := 0 to ListView.Columns.Count - 1 do
begin
Sheet.Cells[1, i + 1] := ListView.Column[i].Caption; // Названия столбцов
end;
for i := 0 to ListView.Items.Count - 1 do
begin
Sheet.Cells[i + 2, 1] := ListView.Items[i].Caption; // Заполнение первого столбца
for n := 1 to ListView.Columns.Count - 1 do
begin
Sheet.Cells[i + 2, n + 1] := ListView.Items[i].SubItems.Strings[n - 1]; // Заполнение остальных столбцов
end;
end;
for i := 0 to ListView.Items.Count - 1 do
begin
Range := Sheet.Range[Format('B%d', [i + 2]), Format('B%d', [i + 2])]; // Указываем диапазон
Range.Hyperlinks.Add(Range, ListView.Items[i].SubItems[0], EmptyParam, EmptyParam, EmptyParam); // Превращаем в гиперссылку
end;
Screen.Cursor := crDefault;
Excel.Visible := True; // Показываем Excel
end;