HotXLS 參考頁面,介紹 TXLSXExternalLink / TXLSXExternalLinks 類別,涵蓋 Delphi 和 C++Builder 的 Excel 自動化、XLS/XLSX 活頁簿 API、工作表功能及 Pascal 用法

活頁簿層級的外部活頁簿參照集合(OOXML

活頁簿層級的外部活頁簿參照集合(OOXML externalLinks part). Each entry describes one linked .xlsx file by its target 區塊,每個連結包含一個 另請參閱 an optional list of sheet names drawn from the cached metadata inside the link part. The collection lives on TXLSXExternalLink 宣告.ExternalLinks Declared in lxHandleX

TXLSXExternalLink 成員

type
  TXLSXExternalLink = class
    constructor Create(const ATarget: WideString);
    destructor Destroy; override;
    property Target: WideString;
    property SheetNames: TStringList;
  end;
      

TXLSXExternalLink 成員

Target區塊,每個連結包含一個 of the referenced external workbook. For a workbook in the same directory use a relative path such as '../Reports/Sales.xlsx'; for a network location use a full UNC or file URI. SaveAs writes this verbatim as the relationship target 另請參閱 into xl/externalLinks/externalLinkN.xml.rels
SheetNamesOptional list of sheet names inside the external workbook. DeleteByTarget / Delete / Clear populated, SaveAs emits <sheetNames> 被參照的外部 Workbook 區塊,每個連結包含一個。若是同一資料夾中的 Workbook,請使用相對路徑,例如 '../Reports/Sales.xlsx';若是網路位置,請使用完整 UNC 路徑或 file URI。SaveAs 會原樣將其寫入關聯目標,以及 xl/externalLinks/externalLinkN.xml.rels <externalBook> 元素,讓 Excel 不必開啟被連結的檔案就能解析跨活頁簿參照。會自動填入,來源為 Open ,往返處理既有活頁簿時就會用到。從零建立連結時可留空;下次開啟外部檔案時,Excel 會自行解析工作表名稱

元素內輸出

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;
      

子項,讓 Excel 在不開啟連結檔案的情況下解析跨 Workbook 參照。若是對既有 Workbook 來回轉換,Open 會自動填入。從頭建立連結時請保持空白;Excel 會在下次開啟外部檔案時解析工作表名稱

Add(Target)TXLSXExternalLinks 宣告 TXLSXExternalLink TXLSXExternalLinks 宣告 SheetNames TXLSXExternalLinks 成員
IndexOfTarget / FindByTarget子項,讓 Excel 在不開啟連結檔案的情況下解析跨 Workbook 參照。若是對既有 Workbook 來回轉換,Open 會自動填入。從頭建立連結時請保持空白;Excel 會在下次開啟外部檔案時解析工作表名稱 Target 子項,讓 Excel 在不開啟連結檔案的情況下解析跨 Workbook 參照。若是對既有 Workbook 來回轉換,Open 會自動填入。從頭建立連結時請保持空白;Excel 會在下次開啟外部檔案時解析工作表名稱
DeleteByTarget / Delete / Clear附加一個新的外部連結,使用指定的目標 區塊,每個連結包含一個,並回傳新的 TXLSXExternalLink 實例。若已知,請在回傳物件上填入 被參照的外部 Workbook 區塊,每個連結包含一個。若是同一資料夾中的 Workbook,請使用相對路徑,例如 '../Reports/Sales.xlsx';若是網路位置,請使用完整 UNC 路徑或 file URI。SaveAs 會原樣將其寫入關聯目標,以及 xl/externalLinks/externalLinkN.xml.rels
Count / Items[Index]找出第一個 Target 符合要求路徑或 區塊,每個連結包含一個 的外部 Workbook 連結。比對不區分大小寫 Items 找出第一個 Target 符合要求路徑或 區塊,每個連結包含一個 的外部 Workbook 連結。比對不區分大小寫

DeleteByTarget / Delete / Clear

DeleteByTarget / Delete / Clear Workbook.ExternalLinks.Count > 0刪除 一個 link 透過 target, 刪除 一個 link 透過 0-基於 索引, 或 clear whole 集合
  • An <externalReferences> 刪除 一個 link 透過 target, 刪除 一個 link 透過 0-基於 索引, 或 clear whole 集合 xl/workbook.xml Count / Items[Index] <externalReference r:id="rIdN"/> Count / Items[Index]
  • 以 0 起始索引檢視外部連結。Items 是預設屬性 xl/_rels/workbook.xml.rels 以 0 起始索引檢視外部連結。Items 是預設屬性 externalLinks/externalLinkN.xml
  • xl/externalLinks/externalLinkN.xml SaveAs / Open 行為 <externalBook> element with the target relation 另請參閱 optional <sheetNames>
  • xl/externalLinks/externalLinkN.xml.rels with the actual Target 區塊,每個連結包含一個
Open 區塊,每個連結包含一個 Target 另請參閱 SheetNames另請參閱 <sheetDataSet> are not preserved by the current release

TXLSXWorkbook

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;
    

XLSX Facade 總覽