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

  • Автор темы Shouldercannon
  • Дата начала
S

Shouldercannon

Доброго времени суток!
Передаю содержимое ListView в Excel
Код:
procedure ListToExcel(ListView: TListView);
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;
 
 
 
 
  Screen.Cursor := crDefault;
  Excel.Visible := True; // Показываем Excel
end;
Потребовалось превратить содержимое второго столбца Excel в гиперссылки. Как это можно сделать?
 
M

-master-

Какие данные идут для второго столбца ?
 
M

-master-

в целевую ячейку надо добавить hyperlink в коллекцию линков
примерно так
Код:
var r: Range;
begin
r:= XLSheet.Range['A1','A1'];
r.Hyperlinks.Add( r,'','http://localhost/0.html',EmptyParam,'ТЫЦ');
end;

ps: убогий тут редактор кода
 
S

Shouldercannon

Код:
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;
:)
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!