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
lxHandleXTXLSXHyperlink-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, Col | 1-basiert Zelle anchor coordinates |
| Url | External URL. Written zu sheetN.xml.rels
mit TargetMode="External" |
| Display | Optional display Text shown durch Excel in place der
URL. Maps zu display attribute on
<hyperlink> |
| Tooltip | Optional 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 |
| Count | Anzahl der Hyperlinks im Arbeitsblatt |
| Items[Index] | Hyperlink am angegebenen 0-basierten Index. Als Standard-Property deklariert |
| Clear | Entfernt 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