Kolekce externích odkazů sešitu na úrovni sešitu (část OOXML
externalLinks ). Každá položka popisuje jeden propojený soubor .xlsx pomocí cílové adresy URL a volitelného seznamu listů
TXLSXWorkbook.ExternalLinks
Declared in
lxHandleXDeklarace TXLSXExternalLink
type
TXLSXExternalLink = class
constructor Create(const ATarget: WideString);
destructor Destroy; override;
property Target: WideString;
property SheetNames: TStringList;
end;
Členové TXLSXExternalLink
| Target | URL odkazovaného externího workbooku. Pro workbook ve stejné složce použijte relativní cestu jako '../Reports/Sales.xlsx'; pro síťové umístění použijte plný UNC nebo file URI. SaveAs to zapíše doslova jako cílový vztah i do xl/externalLinks/externalLinkN.xml.rels
'../Reports/Sales.xlsx'; pro síťové umístění použijte
plný UNC nebo file URI. SaveAs to zapíše doslova jako
cíl relace a do
xl/externalLinks/externalLinkN.xml.rels |
| SheetNames | Volitelný seznam názvů listů uvnitř externího workbooku. Pokud je vyplněn, SaveAs zapíše potomky
<sheetNames> uvnitř elementu
<externalBook> elementu, aby Excel mohl vyřešit
odkazy napříč sešity bez otevření propojeného souboru. Vyplňuje se
automaticky při Open , aby Excel mohl vyřešit odkazy napříč workbooky bez otevření propojeného souboru. Při round-trip existujícího workbooku se vyplní automaticky při Open. Ponechte prázdné při sestavování odkazu od nuly; Excel názvy listů vyřeší při příštím otevření externího souboru |
Deklarace TXLSXExternalLinks
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;
Členové TXLSXExternalLinks
| Add(Target) | Připojí nový externí odkaz se zadanou cílovou URL a vrátí novou instanci TXLSXExternalLink. Pokud jsou SheetNames známy, vyplňte je v navráceném objektu TXLSXExternalLink instance. Populate SheetNames on the returned object if known |
| IndexOfTarget / FindByTarget | Najde první odkaz na externí sešit, jehož Target odpovídá požadované cestě či URL. Porovnávání nerozlišuje velikost písmen |
| DeleteByTarget / Delete / Clear | Najde první odkaz na externí workbook, jehož Target odpovídá požadované cestě nebo URL. Porovnávání není závislé na velikosti písmen |
| Count / Items[Index] | Smaže jeden odkaz podle cíle, smaže jeden odkaz podle 0-based indexu nebo vymaže celou kolekci Items Prozkoumává externí odkazy podle 0-based indexu. Items je výchozí vlastnost |
Chování SaveAs / Open
Když je
Workbook.ExternalLinks.Count > 0, SaveAs emituje:
- Blok
<externalReferences> v
xl/workbook.xml s jedním
<externalReference r:id="rIdN"/> na každý odkaz - Záznam relace v
xl/_rels/workbook.xml.rels ukazující na
externalLinks/externalLinkN.xml xl/externalLinks/externalLinkN.xml obsahující
element
<externalBook> s cílovou relací
a volitelnými <sheetNames>xl/externalLinks/externalLinkN.xml.rels se skutečnou
URL Target URL
Open provede Roundtrip
Target a
SheetNames; cacheované hodnoty buněk uvnitř
<sheetDataSet> aktuální verze
nezachovává
Příklad
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;
Viz také