Превратить текст в гиперссылку в Excel

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Shouldercannon
Сообщения: 74
Зарегистрирован: 08 июн 2008, 15:49

27 мар 2015, 06:54

Доброго времени суток!
Решено

Код: Выделить всё

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;
:)
Ответить