Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Превратить текст в гиперссылку в Excel  (Прочитано 2185 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Shouldercannon
Постоялец

ru
Offline Offline

« : 27-03-2015 03:55 » 

Доброго времени суток!
Решено
Код: (Delphi)
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;
Улыбаюсь
« Последнее редактирование: 27-03-2015 19:09 от Shouldercannon » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines