외부 통합 문서 참조의 통합 문서 수준 컬렉션(OOXML
externalLinks 파트)입니다. 각 항목은 대상 URL과 링크 파트 내부의 캐시된 메타데이터에서 가져온 선택적 시트 이름 목록으로 하나의 연결된 .xlsx 파일을 설명합니다. 컬렉션은
TXLSXWorkbook.ExternalLinks에 있습니다.
lxHandleX에서 선언됩니다
TXLSXExternalLink 선언
type
TXLSXExternalLink = class
constructor Create(const ATarget: WideString);
destructor Destroy; override;
property Target: WideString;
property SheetNames: TStringList;
end;
TXLSXExternalLink 멤버
| Target |
참조된 외부 워크북의 URL입니다 같은 디렉터리의 워크북에는 '../Reports/Sales.xlsx' 같은 상대 경로를 사용하고 네트워크 위치에는 전체 UNC 또는 file URI를 사용합니다 SaveAs는 이를 관계 대상과 xl/externalLinks/externalLinkN.xml.rels에 그대로 기록합니다 |
| SheetNames |
외부 워크북 안의 시트 이름 선택적 목록입니다 채워져 있으면 SaveAs가 요소 안에 자식 요소를 내보내 Excel이 연결된 파일을 열지 않고도 워크북 간 참조를 해결할 수 있습니다 기존 워크북을 왕복 처리할 때 Open이 자동으로 채웁니다 처음부터 링크를 만들 때는 비워 두십시오 Excel이 외부 파일을 다음에 열 때 시트 이름을 해결합니다 |
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;
TXLSXExternalLinks 멤버
| Add(Target) |
지정된 대상 URL로 새 외부 링크를 추가하고 새 TXLSXExternalLink 인스턴스를 반환합니다 알 수 있는 경우 반환된 객체의 SheetNames를 채우세요 |
| IndexOfTarget / FindByTarget |
Target이 요청한 경로 또는 URL과 일치하는 첫 번째 외부 워크북 링크를 찾습니다 일치는 대소문자를 구분하지 않습니다 |
| DeleteByTarget / Delete / Clear |
삭제 하나 link 통해 target, 삭제 하나 link 통해 0-기반 인덱스, 또는 clear whole 컬렉션 |
| Count / Items[Index] |
0부터 시작하는 인덱스로 외부 링크를 검사합니다 Items는 기본 속성입니다 |
SaveAs / Open 동작
Workbook.ExternalLinks.Count > 0일 때, SaveAs는 다음을 방출합니다:
- 링크당 하나의
<externalReference r:id="rIdN"/>가 있는 xl/workbook.xml의 <externalReferences> 블록
externalLinks/externalLinkN.xml을 가리키는 xl/_rels/workbook.xml.rels의 관계 항목
- 대상 관계와 선택적
<sheetNames>가 있는 <externalBook> 요소를 담는 xl/externalLinks/externalLinkN.xml
- 실제
Target URL이 있는 xl/externalLinks/externalLinkN.xml.rels
Open은
Target과
SheetNames를 왕복 전달합니다.
<sheetDataSet> 내부의 캐시된 셀 값은 현재 릴리스에서 보존되지 않습니다
예제
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;
참조