HotXLS-Dokumentation

TXLSXHyperlinks / TXLSXHyperlink-Klassen

Hyperlink-Unterstützung auf einem TXLSXWorksheet. Jeder Eintrag verankert eine einzelne Zelle an eine externe URL. SaveAs gibt einen <hyperlinks> -Block im Tabellenblatt plus eine passende xl/worksheets/_rels/sheetN.xml.rels -Datei aus; Open löst die Beziehungsziele zurück in die Sammlung auf. Deklariert in lxHandleX

TXLSXHyperlink-Deklaration

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-Elemente

Row, Col1-basiert Zelle anchor coordinates
UrlExternal URL. Written zu sheetN.xml.rels mit TargetMode="External"
DisplayOptional display Text shown durch Excel in place der URL. Maps zu display attribute on <hyperlink>
TooltipOptional tooltip shown wenn user hovers Zelle. Maps zu tooltip attribute on <hyperlink>

TXLSXHyperlinks-Deklaration

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-Elemente

Add(Row, Col, Url)Fügt einen Hyperlink nur mit URL hinzu. Gibt den neuen Eintragsindex zurück
Add(Row, Col, Url, Display)Fügt einen Hyperlink mit explizitem Anzeigetext hinzu
Add(Row, Col, Url, Display, Tooltip)Fügt einen Hyperlink mit Anzeigetext und Tooltip hinzu
AddInternal(Row, Col, Location, Display, Tooltip)Fügt einen internen Anker-Hyperlink hinzu — springt zu einer Sheet!Cell -Position (z. B. "Sheet2!A1") an anderer Stelle in der Arbeitsmappe. Es wird keine worksheet-Rels-Beziehung erzeugt; das <hyperlink> -Element trägt ein inline location -Attribut. Verwenden Sie Worksheet.AddHyperlinkToCell(...) als typische Kurzform
IndexOfCell(Row, Col)Gibt den 0-basierten Index des an der 1-basierten Zellkoordinate verankerten Hyperlinks zurück oder -1 , wenn die Zelle keinen Hyperlink hat
FindAt(Row, Col)Gibt das an der Zelle verankerte Hyperlink-Objekt zurück oder nil , wenn kein Hyperlink vorhanden ist
DeleteAt(Row, Col)Löscht den an der Zelle verankerten Hyperlink und gibt Truezurück; gibt False zurück, wenn kein passender Hyperlink vorhanden ist
DeleteInRange(Row1, Col1, Row2, Col2)Löscht jeden Hyperlink, dessen Anker innerhalb des einschließenden 1-basierten Zellbereichs liegt, und gibt die Anzahl der entfernten Einträge zurück. Umgekehrte Koordinaten werden akzeptiert
Delete(Index)Löscht den Hyperlink am angegebenen 0-basierten Sammlungseintrag
CountAnzahl der Hyperlinks im Arbeitsblatt
Items[Index]Hyperlink am angegebenen 0-basierten Index. Als Standard-Property deklariert
ClearEntfernt und gibt jeden Hyperlink frei

Beispiel

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;
    

Siehe auch