Colecção ao nível do livro de referências a livros externos (parte OOXML
externalLinks ). Cada entrada descreve um ficheiro .xlsx vinculado pela URL de destino e uma lista opcional de nomes de folhas
TXLSXWorkbook.ExternalLinks
Declared in
lxHandleXDeclaração TXLSXExternalLink
type
TXLSXExternalLink = class
constructor Create(const ATarget: WideString);
destructor Destroy; override;
property Target: WideString;
property SheetNames: TStringList;
end;
Membros TXLSXExternalLink
| Target | URL do livro de trabalho externo referenciado. Para um livro no mesmo diretório use um caminho relativo como '../Reports/Sales.xlsx'; para uma localização de rede use um UNC completo ou um URI de ficheiro. SaveAs escreve isto tal como está no target da relação e em xl/externalLinks/externalLinkN.xml.rels
'../Reports/Sales.xlsx'; para uma localização de rede utilize
um UNC completo ou um URI de ficheiro. O SaveAs escreve isto verbatim como
destino da relação e em
xl/externalLinks/externalLinkN.xml.rels |
| SheetNames | Lista opcional de nomes de folhas dentro do
livro externo. Quando preenchida, o SaveAs emite
<sheetNames> children inside the
<externalBook> para que o Excel possa resolver
referências entre livros sem abrir o ficheiro ligado. Preenchida
automaticamente por Open Lista opcional de nomes de folhas dentro do livro de trabalho externo. Quando preenchida, SaveAs emite elementos filhos <sheetNames> dentro do elemento <externalBook> para que o Excel possa resolver referências entre livros sem abrir o ficheiro associado. Preenchida automaticamente por Open ao fazer round-trip de um livro de trabalho existente. Deixe vazio quando construir uma ligação de raiz; o Excel resolverá os nomes das folhas na próxima vez que o ficheiro externo for aberto |
Declaração 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;
Membros TXLSXExternalLinks
| Add(Target) | Acrescenta uma nova ligação externa com o URL de destino indicado e devolve a nova instância TXLSXExternalLink. Preencha SheetNames no objeto devolvido se forem conhecidos TXLSXExternalLink instance. Populate SheetNames on the returned object if known |
| IndexOfTarget / FindByTarget | Localiza a primeira ligação de livro externo cujo Target corresponde ao caminho ou URL pedido. A correspondência não distingue maiúsculas de minúsculas |
| DeleteByTarget / Delete / Clear | Localiza a primeira ligação de livro de trabalho externo cujo Target corresponde ao caminho ou URL pedido. A correspondência não diferencia maiúsculas de minúsculas |
| Count / Items[Index] | Elimina uma ligação por target, elimina uma ligação por índice baseado em 0, ou limpa a coleção inteira Items Inspeciona ligações externas por índice baseado em 0. Items é a propriedade predefinida |
Comportamento SaveAs / Open
Quando
Workbook.ExternalLinks.Count > 0, o SaveAs emite:
- Um bloco
<externalReferences> em
xl/workbook.xml com um
<externalReference r:id="rIdN"/> por ligação - Uma entrada de relação em
xl/_rels/workbook.xml.rels que aponta para
externalLinks/externalLinkN.xml xl/externalLinks/externalLinkN.xml com o elemento
<externalBook> , a relação de destino
e o opcional <sheetNames>xl/externalLinks/externalLinkN.xml.rels com o
URL Target real
Open faz a viagem de ida e volta de
Target e
SheetNames; os valores de célula em cache dentro de
<sheetDataSet> não são preservados pela
versão atual
Exemplo
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;
Ver também