HotXLS 문서

TXLSXExternalLink / TXLSXExternalLinks 클래스

외부 통합 문서 참조의 통합 문서 수준 컬렉션(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에 그대로 기록합니다 '../Reports/Sales.xlsx'; 네트워크 위치에는 전체 UNC 또는 file URI를 사용하세요. SaveAs는 이 값을 관계 대상으로 그대로 기록하고 다음 xl/externalLinks/externalLinkN.xml.rels
SheetNames외부 워크북 안의 시트 이름 선택적 목록입니다 채워져 있으면 SaveAs가 <sheetNames> 요소 안에 <externalBook> 요소에도 넣어 Excel이 연결된 파일을 열지 않고 통합 문서 간 참조를 확인할 수 있게 합니다. 다음에 의해 자동으로 채워집니다 Open 자식 요소를 내보내 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를 채우세요 TXLSXExternalLink instance. Populate SheetNames on the returned object if known
IndexOfTarget / FindByTarget 다음 항목이 요청된 경로나 URL과 일치하는 첫 번째 외부 통합 문서 링크를 찾습니다: Target Target이 요청한 경로 또는 URL과 일치하는 첫 번째 외부 워크북 링크를 찾습니다 일치는 대소문자를 구분하지 않습니다
DeleteByTarget / Delete / Clear삭제 하나 link 통해 target, 삭제 하나 link 통해 0-기반 인덱스, 또는 clear whole 컬렉션
Count / Items[Index]0부터 시작하는 인덱스로 외부 링크를 검사합니다 Items는 기본 속성입니다 Items is the default property

SaveAs / Open 동작

When Workbook.ExternalLinks.Count > 0일 때, SaveAs는 다음을 방출합니다:
  • 링크당 하나의 <externalReferences> 가 있는 xl/workbook.xml 의 <externalReference r:id="rIdN"/> 블록
  • A relationship entry in xl/_rels/workbook.xml.rels 을 가리키는 externalLinks/externalLinkN.xml
  • xl/externalLinks/externalLinkN.xml 가 있는 <externalBook> 요소를 담는 <sheetNames>
  • xl/externalLinks/externalLinkN.xml.rels 실제 Target URL이 있는
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;
    

참조