Podpora hypertextových odkazů na objektu
TXLSXWorksheet. Každá
položka ukotvuje jednu buňku k externímu URL. SaveAs vysílá
<hyperlinks> block in the worksheet plus a matching
xl/worksheets/_rels/sheetN.xml.rels . Každá položka ukotvuje jednu buňku na externí adresu URL. SaveAs emituje blok
lxHandleXDeklarace 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;
Členové TXLSXHyperlink
| Row, Col | Souřadnice ukotvení buňky s indexem od 1 |
| Url | Externí URL. Zapíše se do sheetN.xml.rels s TargetMode="External" sheetN.xml.rels
with TargetMode="External" |
| Display | Volitelný zobrazovaný text, který Excel ukáže místo URL. Mapuje se na atribut display u <hyperlink> display attribute on
<hyperlink> |
| Tooltip | Volitelný tooltip, který se zobrazí při najetí nad buňku. Mapuje se na atribut tooltip u <hyperlink> tooltip attribute on
<hyperlink> |
Deklarace 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;
Členové TXLSXHyperlinks
| Add(Row, Col, Url) | Přidá hypertextový odkaz jen s URL. Vrátí nový index položky |
| Add(Row, Col, Url, Display) | Přidá hypertextový odkaz s výslovným zobrazovaným textem |
| Add(Row, Col, Url, Display, Tooltip) | Přidá hypertextový odkaz se zobrazovaným textem i tooltipem |
| AddInternal(Row, Col, Location, Display, Tooltip) | Přidá interní kotevní hypertextový odkaz — přeskočí na umístění Sheet!Cell (např. "Sheet2!A1") jinde v sešitu. Nevzniká žádný vztah worksheet rels; prvek <hyperlink> obsahuje vložený atribut location. Pro typickou zkratku použijte Worksheet.AddHyperlinkToCell(...)
Sheet!Cell IndexOfCell(Row, Col)
"Sheet2!A1") jinde v sešitu. Relace rels na úrovni listu se negeneruje; <hyperlink>
element carries an inline location attribute. Use
Worksheet.AddHyperlinkToCell(...) Vrátí index hypertextového odkazu ukotveného na 1-based souřadnici buňky, nebo -1, když buňka žádný odkaz nemá |
| IndexOfCell(Row, Col) | Vrátí objekt hypertextového odkazu ukotvený v buňce, nebo nil, pokud žádný odkaz není přítomen -1 v případě, že buňka nemá
hypertextový odkaz |
| FindAt(Row, Col) | Vrací objekt hypertextového odkazu ukotvený v buňce,
nebo nil when no hyperlink is present |
| DeleteAt(Row, Col) | Smaže hypertextový odkaz ukotvený v buňce a
vrátí True; returns False Smaže hypertextový odkaz ukotvený v buňce a vrátí True; vrátí False, když žádný odpovídající odkaz neexistuje |
| DeleteInRange(Row1, Col1, Row2, Col2) | Smaže každý hypertextový odkaz, jehož kotva leží uvnitř zahrnujícího 1-based rozsahu buněk, a vrátí počet odstraněných položek. Obrácené souřadnice jsou přípustné |
| Delete(Index) | Smaže hypertextový odkaz na zadaném indexu kolekce od 0 |
| Count | Počet hypertextových odkazů na listu |
| Items[Index] | Hypertextový odkaz na zadaném indexu od 0. Deklarováno jako výchozí vlastnost |
| Clear | Odstraní a uvolní všechny hypertextové odkazy |
Příklad
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;
Viz také