توثيق HotXLS

الفئتان TXLSXHyperlinks / TXLSXHyperlink

دعم الارتباطات التشعبية في TXLSXWorksheet. يُرسِّخ كل إدخال خلية واحدة على عنوان URL خارجي. يُصدِر SaveAs كتلة <hyperlinks> في ورقة العمل مع ملف rels المصاحب xl/worksheets/_rels/sheetN.xml.rels وهو ملف؛ يعيد Open حل أهداف العلاقات إلى المجموعة. ومعرَّف في lxHandleX

إعلان 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;
      

أعضاء TXLSXHyperlink

Row, Col1-مستند خلية anchor coordinates
UrlExternal URL. Written إلى sheetN.xml.rels مع TargetMode="External"
DisplayOptional display نص shown بواسطة Excel في place من URL. Maps إلى display attribute on <hyperlink>
TooltipOptional 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)يضيف ارتباطًا تشعبيًا بمرساة داخلية — ينتقل إلى موقع Sheet!Cell مثل "Sheet2!A1" في موضع آخر من المصنف. لا تُنشأ علاقة rels لورقة العمل؛ ويحمل العنصر <hyperlink> سمة location مضمنة. استخدم Worksheet.AddHyperlinkToCell(...) كاختصار شائع Sheet!Cell IndexOfCell(Row, Col) "Sheet2!A1") في مكان آخر من المصنف. لا تُنشأ أي علاقة rels لورقة العمل؛ والـ <hyperlink> element carries an inline location attribute. Use Worksheet.AddHyperlinkToCell(...) يعيد الفهرس 0-based للارتباط التشعبي المرتبط عند إحداثي الخلية 1-based، أو -1 عندما لا تحتوي الخلية على ارتباط تشعبي
IndexOfCell(Row, Col)يعيد كائن الارتباط التشعبي المرتبط بالخلية، أو nil عندما لا يوجد ارتباط تشعبي -1 عندما لا تكون على الخلية أي ارتباط تشعبي
FindAt(Row, Col)تُرجع كائن الارتباط التشعبي المرسى على الخلية، أو nil when no hyperlink is present
DeleteAt(Row, Col)تحذف الارتباط التشعبي المرسى على الخلية وتعيد True; returns False يحذف الارتباط التشعبي المثبّت عند الخلية ويعيد True؛ ويعيد False عند عدم وجود ارتباط تشعبي مطابق
DeleteInRange(Row1, Col1, Row2, Col2)يحذف كل ارتباط تشعبي تكون مرساته داخل نطاق الخلايا الشامل المعتمد على 1 ويعيد عدد العناصر المحذوفة. تُقبل الإحداثيات المعكوسة
Delete(Index)يحذف الارتباط التشعبي عند فهرس المجموعة المحدد بدءًا من 0
Countعدد الارتباطات التشعبية في ورقة العمل
Items[Index]الارتباط التشعبي عند الفهرس المحدد بدءًا من 0، ومعلن كخاصية افتراضية
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;
    

انظر أيضاً