مجموعة مراجع المصنفات الخارجية على مستوى المصنف (جزء
externalLinks في OOXML). يصف كل إدخال ملف .xlsm/.xlsx مرتبطاً واحداً
TXLSXWorkbook.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 | Target. عنوان URL للمصنف الخارجي المشار إليه. لمصنف في المجلد نفسه استخدم مسارًا نسبيًا مثل '../Reports/Sales.xlsx'؛ ولموقع شبكي استخدم UNC كاملًا أو file URI. يكتب SaveAs هذا النص كما هو كهدف للعلاقة وداخل xl/externalLinks/externalLinkN.xml.rels
'../Reports/Sales.xlsx'؛ وللموقع الشبكي استخدم
مسار UNC كاملًا أو ملف URI. ويكتب SaveAs هذا النص حرفيًا بوصفه
هدف العلاقة وفي
xl/externalLinks/externalLinkN.xml.rels |
| SheetNames | قائمة اختيارية بأسماء الأوراق داخل المصنف
الخارجي. عند تعبئتها، يُصدِر SaveAs
<sheetNames> children inside the
<externalBook> كي يتمكن Excel من حل
المراجع بين المصنفات دون فتح الملف المرتبط. تُعبَّأ
تلقائيًا بواسطة Open قائمة اختيارية بأسماء الأوراق داخل المصنف الخارجي. عند وجودها، يصدر 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 في الكائن المُعاد إذا كانت معروفة TXLSXExternalLink instance. Populate SheetNames on the returned object if known |
| IndexOfTarget / FindByTarget | تحدد موقع أول ارتباط مصنف خارجي يكون Target فيه مطابقًا للمسار أو عنوان URL المطلوب. والمطابقة لا تراعي حالة الأحرف |
| DeleteByTarget / Delete / Clear | يحدد موقع أول رابط إلى مصنف خارجي يكون Target الخاص به مطابقًا للمسار أو الرابط المطلوب. المطابقة غير حساسة لحالة الأحرف |
| Count / Items[Index] | حذف واحد link بواسطة target, حذف واحد link بواسطة 0-مستند فهرس, أو clear whole مجموعة Items يفحص الروابط الخارجية بفهرس بدءًا من 0. Items هي الخاصية الافتراضية |
سلوك SaveAs / Open
عندما يكون
Workbook.ExternalLinks.Count > 0، يُصدِر SaveAs:
- كتلة
<externalReferences> في
xl/workbook.xml مع
<externalReference r:id="rIdN"/> واحد لكل ارتباط - إدخال علاقة في
xl/_rels/workbook.xml.rels يشير إلى
externalLinks/externalLinkN.xml xl/externalLinks/externalLinkN.xml يحتوي على العنصر
<externalBook> مع علاقة الهدف
و <sheetNames>xl/externalLinks/externalLinkN.xml.rels مع
عنوان URL الفعلي للـ Target URL
Open round-trips
Target and
SheetNames; cached cell values inside
<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;
انظر أيضاً