Dokumentacja HotXLS

Klasy TXLSXHyperlinks / TXLSXHyperlink

Obsługa hiperłączy na TXLSXWorksheet. Każdy wpis kotwicy jedną komórkę do zewnętrznego URL. SaveAs emituje blok <hyperlinks> w arkuszu oraz odpowiedni plik xl/worksheets/_rels/sheetN.xml.rels ; Open rozwiązuje z powrotem cele relacji do kolekcji. Zadeklarowana w lxHandleX

Deklaracja 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;
      

Elementy TXLSXHyperlink

Row, Col1-oparty komórka anchor coordinates
UrlExternal URL. Written do sheetN.xml.rels z TargetMode="External"
DisplayOptional display tekst shown przez Excel w place dla URL. Maps do display attribute on <hyperlink>
TooltipOptional tooltip shown gdy user hovers komórka. Maps do tooltip attribute on <hyperlink>

Deklaracja 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;
      

Elementy TXLSXHyperlinks

Add(Row, Col, Url)Dodaje hiperłącze tylko z adresem URL. Zwraca nowy indeks wpisu
Add(Row, Col, Url, Display)Dodaje hiperłącze z jawnie podanym tekstem wyświetlanym
Add(Row, Col, Url, Display, Tooltip)Dodaje hiperłącze z tekstem wyświetlanym i podpowiedzią
AddInternal(Row, Col, Location, Display, Tooltip)Dodaje wewnętrzne hiperłącze zakotwiczone; przechodzi do lokalizacji Sheet!Cell (np. "Sheet2!A1") w innym miejscu skoroszytu. Nie jest generowana relacja worksheet rels; element Sheet!Cell location (e.g "Sheet2!A1") w innym miejscu skoroszytu. Nie jest generowana żadna relacja w rels arkusza; a <hyperlink> element carries an inline location attribute. Use Worksheet.AddHyperlinkToCell(...) zawiera wbudowany atrybut location. Użyj Worksheet.AddHyperlinkToCell(...) jako typowego skrótu
IndexOfCell(Row, Col)Zwraca indeks 0-based hiperłącza zakotwiczonego w komórce o współrzędnych liczonych od 1, albo -1, gdy komórka nie ma hiperłącza -1 gdy komórka nie ma hiperłącza
FindAt(Row, Col)Zwraca obiekt hiperłącza zakotwiczonego w komórce, albo nil, gdy hiperłącze nie jest obecne nil when no hyperlink is present
DeleteAt(Row, Col)Usuwa hiperłącze zakotwiczone w komórce i zwraca True; returns False Usuwa hiperłącze zakotwiczone w komórce i zwraca True; zwraca False, gdy nie istnieje pasujące hiperłącze
DeleteInRange(Row1, Col1, Row2, Col2)Usuwa każde hiperłącze, którego zakotwiczenie znajduje się w domkniętym zakresie komórek liczonym od 1, i zwraca liczbę usuniętych. Odwrócone współrzędne są akceptowane
Delete(Index)Usuwa hiperłącze o podanym indeksie kolekcji liczonym od 0
CountLiczba hiperłączy w arkuszu
Items[Index]Hiperłącze o podanym indeksie liczonym od 0. Zadeklarowane jako właściwość domyślna
ClearUsuwa i zwalnia każde hiperłącze

Przykład

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;
    

Zobacz też