Hyperlink support on a
TXLSXWorksheetでのハイパーリンクサポートです。各エントリは単一のセルを外部 URL に関連付けます。SaveAs はワークシートに
<hyperlinks> ブロックと対応する
xl/worksheets/_rels/sheetN.xml.rels ファイルを出力します。Open はリレーションシップのターゲットをコレクションに解決します。
lxHandleXTXLSXHyperlink 宣言
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, Col | 1-ベース セル anchor coordinates |
| Url | External URL. Written へ sheetN.xml.rels
使用 TargetMode="External" |
| Display | Optional display テキスト shown によって Excel 内 place の
URL. Maps へ display attribute on
<hyperlink> |
| Tooltip | Optional 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) | 内部アンカー ハイパーリンクを追加する Workbook 内の別の Sheet!Cell 位置(例 "Sheet2!A1")へ移動する 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) | 1ベースのセル座標に固定されたハイパーリンクの 0ベースのインデックスを返す ハイパーリンクがない場合は -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基準のセル範囲(端点を含む)内にアンカーがあるハイパーリンクをすべて削除し 削除数を返す 逆順座標も受け付ける |
| Delete(Index) | 指定された 0ベースのコレクション インデックスにあるハイパーリンクを削除します |
| Count | Worksheet 上のハイパーリンク数 |
| Items[Index] | 指定された 0ベースのインデックスにある Hyperlink。既定プロパティとして宣言されています |
| 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;
関連項目