Colección a nivel de libro de trabajo de referencias externas a otros libros de trabajo (parte
externalLinks de OOXML). Cada entrada describe un archivo .xlsx vinculado por su URL de destino y una lista opcional de nombres de hojas extraídos de los metadatos en caché dentro de la parte del vínculo. La colección se ubica en
TXLSXWorkbook.ExternalLinks. Declarado en
lxHandleXDeclaración de TXLSXExternalLink
type
TXLSXExternalLink = class
constructor Create(const ATarget: WideString);
destructor Destroy; override;
property Target: WideString;
property SheetNames: TStringList;
end;
Miembros de TXLSXExternalLink
| Target | URL del libro externo referenciado. Para un libro en el mismo directorio use una ruta relativa como '../Reports/Sales.xlsx'; para una ubicación de red use una ruta UNC completa o un URI de archivo. SaveAs escribe esto literalmente como el destino de la relación y en xl/externalLinks/externalLinkN.xml.rels
'../Reports/Sales.xlsx'; para una ubicación de red use
una ruta UNC completa o un URI de archivo. SaveAs lo escribe textualmente como
destino de la relación y dentro de
xl/externalLinks/externalLinkN.xml.rels |
| SheetNames | Lista opcional de nombres de hojas dentro del libro externo. Cuando se rellena, SaveAs emite hijos
<sheetNames> dentro del elemento
<externalBook> para que Excel pueda resolver
referencias entre libros sin abrir el archivo vinculado. Se llena
automáticamente con Open para que Excel pueda resolver referencias entre libros sin abrir el archivo vinculado. Open la rellena automáticamente al hacer round-trip de un libro existente. Déjala vacía al crear un vínculo desde cero; Excel resolverá los nombres de hoja la próxima vez que se abra el archivo externo |
Declaración 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;
Miembros de TXLSXExternalLinks
| Add(Target) | Agrega un nuevo vínculo externo con la URL de destino indicada y devuelve la nueva instancia de TXLSXExternalLink. Complete SheetNames en el objeto devuelto si los conoce TXLSXExternalLink instance. Populate SheetNames on the returned object if known |
| IndexOfTarget / FindByTarget | Localiza el primer vínculo de libro externo cuyo Target Ubica el primer vínculo a libro externo cuyo Target coincide con la ruta o URL solicitada. La coincidencia no distingue mayúsculas y minúsculas |
| DeleteByTarget / Delete / Clear | eliminar uno link por target, eliminar uno link por 0-basado índice, o clear whole colección |
| Count / Items[Index] | Inspeccionar external links por 0-basado índice. Items es default propiedad |
Comportamiento de SaveAs / Open
Cuando
Workbook.ExternalLinks.Count > 0, SaveAs emite:
- Un bloque
<externalReferences> en
xl/workbook.xml con un
<externalReference r:id="rIdN"/> por vínculo - Una entrada de relación en
xl/_rels/workbook.xml.rels que apunta a
externalLinks/externalLinkN.xml xl/externalLinks/externalLinkN.xml que contiene el elemento
<externalBook> con la relación de destino y los <sheetNames>xl/externalLinks/externalLinkN.xml.rels con la URL real de Target URL
Open hace ida y vuelta con
Target y
SheetNames; los valores de celda en caché dentro de
<sheetDataSet> no son preservados por la versión actual
Ejemplo
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;
Véase también