Workbook-level collection of external workbook references (OOXML
externalLinks part). Each entry describes one linked .xlsx
file by its target URL e an optional list of sheet names drawn from
the cached metadata inside the link part. The collection lives on
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 della cartella di lavoro esterna referenziata. Per una
cartella di lavoro nella stessa directory usare un percorso relativo come
'../Reports/Sales.xlsx'; for a network location use
a full UNC o file URI. SaveAs writes this verbatim as the
relationship target e into
xl/externalLinks/externalLinkN.xml.rels |
| SheetNames |
Elenco facoltativo dei nomi dei fogli all'interno della
cartella di lavoro esterna. Quando è popolato, SaveAs emette
<sheetNames> children inside the
<externalBook> elemento così Excel può risolvere
i riferimenti tra cartelle di lavoro senza aprire il file collegato. Popolato
automaticamente da Open durante il round-trip di una
cartella di lavoro esistente. Lasciare vuoto quando si costruisce un collegamento da zero; Excel
risolverà i nomi dei fogli alla successiva apertura del file
esterno |
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 e 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 o URL. Matching is case-insensitive |
| DeleteByTarget / Delete / Clear |
Delete one link by target, delete one link by 0-based index, o clear the whole collection |
| Count / Items[Index] |
Ispeziona external links by 0-based index. Items is the default proprietà |
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
e optional <sheetNames>
xl/externalLinks/externalLinkN.xml.rels with the
actual Target URL
Open round-trips
Target e
SheetNames; cached cell values inside
<sheetDataSet> are not preserved by the current
release
Esempio
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;
Vedere also