Coleção em nível de pasta de trabalho de referências a pastas de trabalho externas (parte OOXML
externalLinks ). Cada entrada descreve um arquivo .xlsx vinculado pela sua URL de destino e uma lista opcional de nomes de planilhas extraídos dos metadados em cache dentro da parte do link. A coleção fica em
TXLSXWorkbook.ExternalLinks. Declarado em
lxHandleXDeclaração de TXLSXExternalLink
type
TXLSXExternalLink = class
constructor Create(const ATarget: WideString);
destructor Destroy; override;
property Target: WideString;
property SheetNames: TStringList;
end;
Membros de TXLSXExternalLink
| Target | URL da pasta de trabalho externa referenciada. Para uma pasta de trabalho no mesmo diretório, use um caminho relativo como '../Reports/Sales.xlsx'; para um local de rede, use um UNC completo ou URI de arquivo. SaveAs grava isso literalmente como o destino da relação e em xl/externalLinks/externalLinkN.xml.rels
'../Reports/Sales.xlsx'; para um local de rede, use
um UNC completo ou um URI de arquivo. O SaveAs grava isso textualmente como
destino do relationship e em
xl/externalLinks/externalLinkN.xml.rels |
| SheetNames | Lista opcional de nomes de planilhas dentro da pasta de trabalho
externa. Quando populada, o SaveAs emite
<sheetNames> children inside the
<externalBook> para que o Excel possa resolver
referências entre pastas de trabalho sem abrir o arquivo vinculado. Populada
automaticamente por Open Lista opcional de nomes de planilhas dentro da pasta de trabalho externa. Quando preenchida, SaveAs emite filhos <sheetNames> dentro do elemento <externalBook> para que o Excel possa resolver referências entre pastas de trabalho sem abrir o arquivo vinculado. Preenchida automaticamente por Open ao fazer round-trip de uma pasta de trabalho existente. Deixe em branco ao criar um vínculo do zero; o Excel resolverá os nomes das planilhas na próxima vez que o arquivo externo for aberto |
Declaração de 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 de TXLSXExternalLinks
| Add(Target) | Anexa um novo link externo com a URL de destino informada e retorna a nova instância TXLSXExternalLink. Preencha SheetNames no objeto retornado se souber os nomes TXLSXExternalLink instance. Populate SheetNames on the returned object if known |
| IndexOfTarget / FindByTarget | Localiza o primeiro link de pasta de trabalho externa cujo Target Localiza a primeira vinculação de pasta de trabalho externa cujo Target corresponde ao caminho ou URL solicitado. A correspondência não diferencia maiúsculas de minúsculas |
| DeleteByTarget / Delete / Clear | excluir um link por target, excluir um link por 0-baseado índice, ou clear whole coleção |
| Count / Items[Index] | Inspecionar external links por 0-baseado índice. Items é default propriedade |
Comportamento de SaveAs / Open
Quando
Workbook.ExternalLinks.Count > 0, SaveAs emite:
- Um bloco
<externalReferences> em
xl/workbook.xml com um
<externalReference r:id="rIdN"/> por link - Uma entrada de relacionamento em
xl/_rels/workbook.xml.rels apontando para
externalLinks/externalLinkN.xml xl/externalLinks/externalLinkN.xml contendo o elemento
<externalBook> com a relação de destino e <sheetNames>xl/externalLinks/externalLinkN.xml.rels com a URL Target real
Open faz round-trip de
Target e
SheetNames; os valores de célula em cache dentro de
<sheetDataSet> não são preservados pelo lançamento 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;
Veja também