Документация HotXLS

Классы TXLSXHyperlinks / TXLSXHyperlink

Поддержка гиперссылок на 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, Col1-основанный ячейка anchor coordinates
UrlExternal URL. Written к sheetN.xml.rels с TargetMode="External"
DisplayOptional display текст shown через Excel в place для URL. Maps к display attribute on <hyperlink>
TooltipOptional 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 не создается; элемент Sheet!Cell location (e.g "Sheet2!A1") в другом месте книги. Связь в rels листа не создаётся; <hyperlink> element carries an inline location attribute. Use Worksheet.AddHyperlinkToCell(...) содержит встроенный атрибут location. Для обычного сокращения используйте Worksheet.AddHyperlinkToCell(...)
IndexOfCell(Row, Col)Возвращает индекс гиперссылки с нумерацией от 0, привязанной к координате ячейки с нумерацией от 1, или -1, когда у ячейки нет гиперссылки -1 , когда у ячейки нет гиперссылки
FindAt(Row, Col)Возвращает объект гиперссылки, привязанный к ячейке, или nil, когда гиперссылка отсутствует nil when no hyperlink is present
DeleteAt(Row, Col)Удаляет гиперссылку, привязанную к ячейке, и возвращает True; returns False Удаляет гиперссылку, привязанную к ячейке, и возвращает 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;
    

См. также