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