مجموعة مراجع المصنفات الخارجية على مستوى المصنف (جزء externalLinks في OOXML). يصف كل إدخال ملف .xlsm/.xlsx مرتبطاً واحداً
إعلان TXLSXExternalLink
type
TXLSXExternalLink = class
constructor Create(const ATarget: WideString);
destructor Destroy; override;
property Target: WideString;
property SheetNames: TStringList;
end;
أعضاء TXLSXExternalLink
| Target |
Target. عنوان URL للمصنف الخارجي المشار إليه. لمصنف في المجلد نفسه استخدم مسارًا نسبيًا مثل '../Reports/Sales.xlsx'؛ ولموقع شبكي استخدم UNC كاملًا أو file URI. يكتب SaveAs هذا النص كما هو كهدف للعلاقة وداخل xl/externalLinks/externalLinkN.xml.rels |
| SheetNames |
قائمة اختيارية بأسماء الأوراق داخل المصنف الخارجي. عند وجودها، يصدر SaveAs عناصر <sheetNames> داخل عنصر <externalBook> حتى يتمكن 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 الخاص به مطابقًا للمسار أو الرابط المطلوب. المطابقة غير حساسة لحالة الأحرف |
| DeleteByTarget / Delete / Clear |
حذف واحد link بواسطة target, حذف واحد link بواسطة 0-مستند فهرس, أو clear whole مجموعة |
| Count / Items[Index] |
يفحص الروابط الخارجية بفهرس بدءًا من 0. Items هي الخاصية الافتراضية |
سلوك SaveAs / Open
عندما يكون Workbook.ExternalLinks.Count > 0، يُصدِر SaveAs كتلة <externalReferences> في workbook.xml مع جزء externalLink منفصل لكل إدخال
مثال
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;
انظر أيضاً