HotXLS-dokumentation

TXLSXExternalLink / TXLSXExternalLinks classes

Workbook-level collection of external workbook references (OOXML externalLinks -delen). Varje post beskriver en länkad .xlsx-fil via dess mål-URL och en valfri lista med bladnamn hämtade ur cachad metadata i länkdelen. Samlingen finns på TXLSXWorkbook.ExternalLinks Declared in lxHandleX

TXLSXExternalLink declaration

type
  TXLSXExternalLink = class
    constructor Create(const ATarget: WideString);
    destructor Destroy; override;
    property Target: WideString;
    property SheetNames: TStringList;
  end;
      

TXLSXExternalLink medlemmar

Target URL för den refererade externa arbetsboken. För en arbetsbok i samma katalog använder du en relativ sökväg som '../Reports/Sales.xlsx'; för en nätverksplats använder du en fullständig UNC- eller file-URI. SaveAs skriver detta ordagrant som relationens mål och in i xl/externalLinks/externalLinkN.xml.rels
SheetNames Valfri lista med bladnamn i den externa arbetsboken. När den är fylld genererar SaveAs <sheetNames> children inside the <externalBook> -elementet så att Excel kan lösa referenser mellan arbetsböcker utan att öppna den länkade filen. Fyllds automatiskt av Open vid round trip av en befintlig arbetsbok. Lämna tom när en länk byggs från grunden; Excel löser bladnamnen nästa gång den externa filen öppnas

TXLSXExternalLinks declaration

type
  TXLSXExternalLinks = class
    constructor Create;
    destructor Destroy; override;
    function Add(const ATarget: WideString): TXLSXExternalLink;
    function IndexOfTarget(const ATarget: WideString): Integer;
    function FindByTarget(const ATarget: WideString): TXLSXExternalLink;
    function DeleteByTarget(const ATarget: WideString): Boolean;
    procedure Delete(Index: Integer);
    procedure Clear;
    property Count: Integer;
    property Items[Index: Integer]: TXLSXExternalLink; default;
  end;
      

TXLSXExternalLinks medlemmar

Add(Target) Appends a new external link with the given target URL and returns the new TXLSXExternalLink instance. Populate SheetNames on the returned object if known
IndexOfTarget / FindByTarget Locate the first external workbook link whose Target matches the requested path or URL. Matching is case-insensitive
DeleteByTarget / Delete / Clear Ta bort en länk via mål, ta bort en länk via 0-baserat index eller rensa hela samlingen
Count / Items[Index] Inspect external links by 0-based index. Items is the default property

SaveAs / Open behavior

When Workbook.ExternalLinks.Count > 0, SaveAs emits:
  • An <externalReferences> block in xl/workbook.xml with one <externalReference r:id="rIdN"/> per link
  • A relationship entry in xl/_rels/workbook.xml.rels pointing to externalLinks/externalLinkN.xml
  • xl/externalLinks/externalLinkN.xml containing the <externalBook> element with the target relation and optional <sheetNames>
  • xl/externalLinks/externalLinkN.xml.rels with the actual Target URL
Open round-trips Target and SheetNames; cached cell values inside <sheetDataSet> are not preserved by the current release

Exempel

var
  wb: TXLSXWorkbook;
  link: TXLSXExternalLink;
begin
  wb := TXLSXWorkbook.Create;
  try
    link := wb.ExternalLinks.Add('../Data/Source.xlsx');
    link.SheetNames.Add('Sheet1');
    link.SheetNames.Add('Sheet2');
    wb.Sheets.Add('Report');
    wb.Sheets[0].Cells.Item[1, 1].Formula :=
      '[Source.xlsx]Sheet1!$A$1';
    wb.SaveAs('report.xlsx');
  finally
    wb.Free;
  end;
end;
    

Se även