Docs HotXLS

TXLSXExternalLink / TXLSXExternalLinks classes

Workbook-level collection of external workbook references (OOXML externalLinks partie). Chaque entrée décrit un fichier .xlsx lié par son URL cible et une liste facultative de noms de feuilles tirée des métadonnées en cache à l'intérieur de la partie de lien. La collection vit sur 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 members

Target URL du classeur externe référencé. Pour un classeur dans le même répertoire, utilisez un chemin relatif tel que '../Reports/Sales.xlsx' ; pour un emplacement réseau, utilisez un UNC complet ou un URI de fichier. SaveAs écrit cette valeur telle quelle comme cible de relation et dans xl/externalLinks/externalLinkN.xml.rels
SheetNames Liste facultative de noms de feuilles à l'intérieur du classeur externe. Quand elle est renseignée, SaveAs émet <sheetNames> children inside the <externalBook> pour qu'Excel puisse résoudre les références inter-classeurs sans ouvrir le fichier lié. Renseigné automatiquement par Open lors de l'aller-retour d'un classeur existant. Laissez vide quand vous construisez le lien de zéro ; Excel résoudra les noms de feuilles à la prochaine ouverture du fichier externe

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 or URL. Matching is case-insensitive
DeleteByTarget / Delete / Clear Supprime un lien par cible, supprime un lien par index basé sur 0, ou efface toute la collection
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

Exemple

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;
    

Voir aussi