Поддержка гиперссылок на
TXLSXWorksheet. Каждый элемент привязывает одну ячейку к внешнему URL. SaveAs формирует блок
<hyperlinks> в листе вместе с соответствующим файлом
xl/worksheets/_rels/sheetN.xml.rels; Open разрешает целевые объекты зависимостей обратно в коллекцию. Объявлено в
lxHandleX
Объявление TXLSXHyperlink
type
TXLSXHyperlink = class
constructor Create(ARow, ACol: Integer; const AUrl, ADisplay, ATooltip: WideString);
function IsInternal: Boolean; // True when Location is set and Url is empty
property Row: Integer;
property Col: Integer;
property Url: WideString; // External URL (mutually exclusive with Location)
property Location: WideString; // Internal anchor, e.g. "Sheet2!A1"
property Display: WideString;
property Tooltip: WideString;
end;
Члены TXLSXHyperlink
| Row, Col |
1-основанный ячейка anchor coordinates |
| Url |
External URL. Written к sheetN.xml.rels
с TargetMode="External" |
| Display |
Optional display текст shown через Excel в place для
URL. Maps к display attribute on
<hyperlink> |
| Tooltip |
Optional tooltip shown когда user hovers
ячейка. Maps к tooltip attribute on
<hyperlink> |
Объявление TXLSXHyperlinks
type
TXLSXHyperlinks = class
constructor Create;
destructor Destroy; override;
function Add(ARow, ACol: Integer; const AUrl: WideString): Integer; overload;
function Add(ARow, ACol: Integer; const AUrl, ADisplay: WideString): Integer; overload;
function Add(ARow, ACol: Integer; const AUrl, ADisplay, ATooltip: WideString): Integer; overload;
// Internal hyperlink — Location overload. No rels relationship.
function AddInternal(ARow, ACol: Integer; const ALocation, ADisplay, ATooltip: WideString): Integer;
function IndexOfCell(ARow, ACol: Integer): Integer;
function FindAt(ARow, ACol: Integer): TXLSXHyperlink;
function DeleteAt(ARow, ACol: Integer): Boolean;
function DeleteInRange(ARow1, ACol1, ARow2, ACol2: Integer): Integer;
procedure Delete(Index: Integer);
procedure Clear;
property Count: Integer;
property Items[Index: Integer]: TXLSXHyperlink; default;
end;
Члены TXLSXHyperlinks
| Add(Row, Col, Url) |
Добавляет гиперссылку только с URL. Возвращает новый индекс записи |
| Add(Row, Col, Url, Display) |
Добавляет гиперссылку с явным отображаемым текстом |
| Add(Row, Col, Url, Display, Tooltip) |
Добавляет гиперссылку с отображаемым текстом и всплывающей подсказкой |
| AddInternal(Row, Col, Location, Display, Tooltip) |
Добавляет внутреннюю якорную гиперссылку — переход к расположению Sheet!Cell, например "Sheet2!A1", в другой части Workbook. Связь worksheet rels не создается; элемент содержит встроенный атрибут location. Для обычного сокращения используйте Worksheet.AddHyperlinkToCell(...) |
| IndexOfCell(Row, Col) |
Возвращает индекс гиперссылки с нумерацией от 0, привязанной к координате ячейки с нумерацией от 1, или -1, когда у ячейки нет гиперссылки |
| FindAt(Row, Col) |
Возвращает объект гиперссылки, привязанный к ячейке, или nil, когда гиперссылка отсутствует |
| DeleteAt(Row, Col) |
Удаляет гиперссылку, привязанную к ячейке, и возвращает True; возвращает False, когда подходящей гиперссылки нет |
| DeleteInRange(Row1, Col1, Row2, Col2) |
Удаляет каждую гиперссылку, чья привязка находится внутри включающего 1-based диапазона ячеек, и возвращает число удаленных. Обратные координаты допускаются |
| Delete(Index) |
Удаляет гиперссылку по указанному нулевому индексу коллекции |
| Count |
Количество гиперссылок на листе |
| Items[Index] |
Гиперссылка по заданному нулевому индексу. Объявлено как свойство по умолчанию |
| Clear |
Удаляет и освобождает каждую гиперссылку |
Пример
var
ws: TXLSXWorksheet;
begin
ws := Workbook.Sheets.Add('Links');
ws.Cells.Item[1, 1].Value := 'losLab';
ws.AddHyperlink(1, 1, 'https://www.loslab.com',
'losLab home', 'Open in browser');
// Equivalent through the collection:
ws.Hyperlinks.Add(2, 1, 'https://www.loslab.com/docs');
if ws.Hyperlinks.FindAt(1, 1) <> nil then
ws.Hyperlinks.DeleteInRange(1, 1, 2, 1);
end;
См. также