HotXLS-documentatie

TXLSXExternalLink / TXLSXExternalLinks classes

Collectie op werkmapniveau van externe werkmapverwijzingen (OOXML- externalLinks-part). Elke invoer beschrijft één gekoppeld .xlsx- bestand via zijn doel-URL en een optionele lijst met bladnamen uit de gecachte metagegevens in het linkpart. De collectie leeft op TXLSXWorkbook.ExternalLinks Gedeclareerd in lxHandleX

TXLSXExternalLink declaration

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

TXLSXExternalLink members

Target URL van de gerefereerde externe werkmap. Voor een werkmap in dezelfde map gebruik je een relatief pad zoals'../Reports/Sales.xlsx'; for a network location use a full UNC of file URI. SaveAs writes this verbatim as the relationship target en into xl/externalLinks/externalLinkN.xml.rels
SheetNames Optionele lijst met bladnamen in de externe werkmap. Indien gevuld schrijft SaveAs<sheetNames> children inside the <externalBook> -element zodat Excel verwijzingen tussen werkmappen kan herleiden zonder het gekoppelde bestand te openen. Wordt automatisch gevuld door Open bij de roundtrip van een bestaande werkmap. Laat leeg wanneer je een koppeling vanaf nul bouwt; Excel herleidt de bladnamen de volgende keer dat het externe bestand wordt geopend

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 members

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 of URL. Matching is case-insensitive
DeleteByTarget / Delete / Clear Verwijdert één link op doel, verwijdert één link op 0-based index of maakt de hele collectie leeg
Count / Items[Index] Inspecteren external links by 0-based index. Items is the default eigenschap

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 en SheetNames; cached cell values inside <sheetDataSet> are not preserved by the current release

Voorbeeld

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;
    

Zie ook