نظرة عامة
![]() |
مكتبة قراءة/كتابة HotXLS Excel هي مكون قراءة وكتابة Excel عالي الأداء لـ Delphi و C++Builder
يمكنها إنشاء جداول بيانات Excel جديدة وقراءة أو تعديل مصنفات XLS و XLSX الحالية دون الحاجة إلى تثبيت
Microsoft Excel أو Office على الجهاز
تمت كتابة HotXLS بالكامل بلغة Object Pascal. إنها تقرأ وتكتب ملفات Excel مباشرة
على المستوى الثنائي ومستوى OOXML، لذلك لا يوجد عبء أتمتة COM/OLE ولا يوجد اعتماد على ترخيص أو وجود Office
تدعم HotXLS إصدارات Delphi و C++Builder من XE5 إلى 13 Florence
يظل التنسيق اللوني الكلاسيكي لـ XLS عن قصد قائمًا على لوحة الألوان (palette-based). راجع Classic XLS color model
للحصول على قرار ThemeColor / TintAndShade
|
بنية الواجهة المزدوجة
تعرض HotXLS وحدتي واجهة متعايشتين بحيث يمكن لكود XLS القديم وكود XLSX الجديد العيش جنبًا إلى جنب
بدون أي إعادة هيكلة:
lxHandle |
الواجهة الأساسية لتنسيق Excel 97–2003 BIFF8 (.xls)، بالإضافة إلى تصدير HTML و RTF و CSV و TSV. يستمر كل كود المستخدم الحالي في استخدام هذه الوحدة دون تغيير. نقاط الدخول:
TXLSWorkbook, TXLSWorksheet, IXLSWorkbook, IXLSRange
|
lxHandleX |
الواجهة الأساسية لتنسيق Excel 2007+ OOXML (.xlsx) وقراءة/كتابة OpenDocument Spreadsheet
(.ods). توفر أنواع المصنفات وأوراق العمل الخاصة بها بحيث لا يتم تعديل السلوك الخاص بـ XLSX على مسار كود BIFF. نقاط الدخول:
TXLSXWorkbook, TXLSXWorksheet, TXLSXCell
|
تشارك كلتا الواجهتين نفس محرك الصيغ، ونفس طبقة دعم Unicode، ونفس خط التصدير
راجع XLSX Facade Overview لمعرفة التسلسل الهرمي الكامل للفئات الذي تعرضه
lxHandleX
البدء السريع
توضح المقتطفات التالية الحد الأدنى من الكود لإنشاء مصنف يحتوي على ورقة عمل واحدة وكتابة
قيمة في خلية
XLS الكلاسيكي (lxHandle)
uses lxHandle;
var
Book: IXLSWorkbook;
ws: TXLSWorksheet;
begin
Book := TXLSWorkbook.Create;
// Add a worksheet and give it a name
ws := Book.Sheets.Add;
ws.Name := 'Sheet1';
// Write values to cells using A1 notation
ws.Range['A1'].Value := 'Hello';
ws.Range['B1'].Value := 42;
ws.Range['C1'].Formula := '=B1*2';
// Apply basic formatting
ws.Range['A1'].Font.Bold := True;
ws.Range['A1'].Interior.Color := clYellow;
Book.SaveAs('output.xls');
end;
XLSX (lxHandleX)
uses lxHandleX;
var
Book: TXLSXWorkbook;
ws: TXLSXWorksheet;
cell: TXLSXCell;
begin
Book := TXLSXWorkbook.Create;
try
ws := Book.Sheets.Add('Sheet1');
// Write a string and a numeric value
ws.Cells[1, 1].Value := 'Product';
ws.Cells[1, 2].Value := 'Price';
ws.Cells[2, 1].Value := 'Widget';
ws.Cells[2, 2].Value := 9.99;
// Apply a currency number format
cell := ws.Cells[2, 2];
cell.NumberFormat := '$#,##0.00';
Book.SaveAs('output.xlsx');
finally
Book.Free;
end;
end;
للحصول على جولة أوسع تغطي كلتا الواجهتين في مشروع توضيحي واحد، راجع
API Tour Demo
الميزات
إدخال/إخراج الملفات ودعم التدفق
قراءة ملفات Excel الحالية، وكتابة ملفات Excel جديدة أو حالية، والتعامل مع الحماية بكلمة مرور لـ XLS الكلاسيكي وسير عمل الحفظ المشفر لـ XLSX، وسرد أسماء الأوراق بسرعة من ملفات XLS و XLSX أو التدفقات دون
تحميل المصنف بأكمله. يتم دعم فتح CSV كمصنف من خلال
IXLSWorkbook.OpenCSV
قيم الخلايا والصيغ
قراءة وكتابة قيم الخلايا لجميع أنواع Excel الأصلية: الأرقام، السلاسل النصية، التاريخ/الوقت، القيم المنطقية، والصيغ
يقوم محرك الحساب المدمج بتقييم الصيغ في كل من مصنفات XLS الكلاسيكية و XLSX، ويدعم:
- الدوال النصية (
LEFT,MID,TRIM,SUBSTITUTE, …) - دوال التاريخ وأيام العمل (
DATE,NETWORKDAYS,WORKDAY, …) - الدوال الهندسية وتحويل القاعدة (
BIN2DEC,HEX2DEC, …) - دوال البت (
BITAND,BITOR,BITXOR, …) - الدوال الإحصائية والتجميعية (
AVERAGE,SUMIF,COUNTIFS, …) - الدوال الرياضية (
ROUND,MOD,POWER, …)
يتيح لك الاستدعاء
OnUserFunction التعامل مع دوال ورقة العمل المخصصة أو غير المدعومة في وقت التشغيل
راجع OnUserFunction callback لمعرفة التوقيع والأمثلة

تنسيق الخلايا
الوصول الكامل إلى سمات مظهر الخلية:
- الخطوط — الاسم، الحجم، اللون (RGB أو لون السمة + الصبغة)، غامق، مائل، تسطير، يتوسطه خط، مرتفع، منخفض، ظل، ومخطط تفصيلي
- المحاذاة — المحاذاة الأفقية والعمودية، اتجاه النص (الزاوية)، مستوى المسافة البادئة، التفاف النص، الانكماش للاحتواء، وترتيب القراءة (RTL/LTR)
- الحدود — جميع الحواف الأربعة والأقطار، نمط الخط، السُمك، ولون RGB / السمة
- الداخل (التعبئة) — التعبئة الصلبة، تعبئة الأنماط، الألوان الأمامية والخلفية بما في ذلك لون السمة مع TintAndShade
- تنسيقات الأرقام — السلاسل النصية المضمنة والمخصصة للتنسيق للتاريخ، الوقت، العملة، النسبة المئوية، والترميز العلمي
- التعليقات / الشروح — إضافة وقراءة وتنسيق تعليقات الخلايا
عمليات النطاق
توفر
IXLSRange (الواجهة الكلاسيكية) و TXLSXRange (واجهة XLSX) مجموعة غنية من
عمليات النطاق:
- دمج الخلايا وإلغاء دمجها؛ الوصول إلى المنطقة المدمجة لأي خلية
- نسخ ونقل وإدراج وحذف النطاقات، مع التحكم في اتجاه الإزاحة
- تجميع الصفوف أو الأعمدة وإلغاء تجميعها لعروض المخطط التفصيلي/الطي
- احتواء تلقائي لارتفاع الصف وعرض العمود لمحتوى الخلية
- تطبيق أنماط الخلايا المسماة المضمنة (
ApplyBuiltinStyle) - تحديد مناطق متعددة (
TXLSWorksheet.SelectAreas) - الاستدعاء التكراري ForEachCell لمعالجة الخلايا دفعة واحدة
ميزات ورقة العمل
يشمل التحكم على مستوى ورقة العمل:
- اسم الورقة، لون علامة التبويب، الرؤية (مخفية / مخفية جدًا)، والتنقل المستند إلى الفهرس
- حماية الورقة مع دقة مستوى الأذونات؛ الحماية على مستوى المصنف
- تجميد الأجزاء، تقسيم الأجزاء، وموضع التمرير
- نطاقات التصفية التلقائية مع المعايير؛ قواعد التحقق من صحة بيانات القائمة
- التنسيق الشرطي: مقاييس الألوان (لونان و 3 ألوان)، أشرطة البيانات، ومجموعات الرموز
- البحث عن نص واستبدال النص عبر ورقة العمل
- خيارات العرض: لون خطوط الشبكة، وضع عرض الصيغة، عرض الأصفار، عرض العناوين، عرض من اليمين إلى اليسار، عرض رموز المخطط التفصيلي، ومستوى التكبير
- الجداول المهيكلة (
TXLSTable/TXLSXTable): إضافة والوصول إلى وتنسيق جداول Excel مع صفوف الرؤوس والصفوف المترابطة - المخططات: إضافة أوراق المخططات والمخططات المضمنة عبر
TXLSWorksheetsAddChartSheetوTXLSXChart
الارتباطات التشعبية والنطاقات المسماة
إضافة وقراءة الارتباطات التشعبية (URL، mailto، ومراجع الخلايا داخل المصنف) من خلال
IXLSHyperLinks. تحديد وحل النطاقات المسماة على نطاق المصنف وورقة العمل من خلال
IXLSNames / TXLSXDefinedNames. يمكن استخدام النطاقات المسماة في الصيغ و
حلها مرة أخرى إلى نطاق خلايا عبر RefersToRange
الصور والأشكال
تضمين الصور النقطية (BMP, JPG, PNG, GIF) في أوراق العمل عبر
TXLSShapes.AddPicture / TXLSXWorksheet.AddImage. إنشاء مربعات نص مستقلة
في XLS الكلاسيكي من خلال TXLSShapes.AddTextBox. الاحتفاظ بقواعد الموصل والحل في OfficeArt التي تم إنشاؤها بواسطة Excel
في رسومات BIFF8، وعرض خيارات FOPT للشكل الخام من خلال
TXLSShape.OfficeArtOptions لعمل سير عمل الرسم الاحترافي
إعداد الصفحة والطباعة
الوصول الكامل إلى تخطيط الطباعة من خلال
IXLSPageSetup:
- حجم الورق (A4, Letter, Legal، وغيرها الكثير؛ راجع PaperSize)
- الاتجاه (عمودي / أفقي)، الهوامش، التوسيط أفقيًا / عموديًا
- سلاسل الرأس والتذييل مع رموز تنسيق Excel (غامق، مائل، رقم الصفحة، التاريخ، إلخ؛ راجع Header/Footer formatting codes)
- فواصل الصفحات الأفقية والعمودية اليدوية
- القياس للاحتواء في الصفحات؛ نسبة التكبير؛ منطقة الطباعة؛ عناوين الطباعة (تكرار الصفوف / الأعمدة)
- جودة المسودة؛ أبيض وأسود؛ طباعة خطوط الشبكة؛ طباعة العناوين؛ طباعة الملاحظات
تنسيقات التصدير
تصدير مصنفات كاملة، أو أوراق عمل فردية، أو نطاقات خلايا عشوائية إلى:
- HTML — مستند كامل أو جزء جدول مضمن لمعاينات أو سير عمل البريد الإلكتروني؛
يمكن التحكم فيه عبر
TXLSHTMLExportوTXLSXHtmlExportOptions - RTF — نص منسق لاستيراد معالج النصوص
- CSV — قيم مفصولة بفواصل مع محدد وترميز قابلين للتكوين
- TSV — قيم مفصولة بعلامات جدولة
- ODS — OpenDocument Spreadsheet عبر واجهة
lxHandleX
تصدير قاعدة البيانات والشبكة
تصدير أي مجموعة بيانات متوافقة مع TDataSet أو TDBGrid مباشرة إلى Excel أو HTML أو RTF باستخدام مكونات
TDataToXLS أو
TGridToXLS
يطلق كلا المكونين أحداث AfterCell، AfterRow، AfterTitle، و
AfterGroup للتحكم الدقيق في الإخراج، ويدعمان حقول التجميع متعددة المستويات
حفظ مشروع VBA
يحتفظ HotXLS بحمولات مشروع VBA عند إجراء دورة كاملة للمصنفات التي تدعم وحدات الماكرو. الفحص للقراءة فقط للوحدة النمطية
متاح من خلال
TXLSVBAProject و TXLSVBAModule
استدعِ IXLSWorkbook.HasVBAProject لاكتشاف الحمولة و
LoadVBAProjectFromFile / SaveVBAProjectToFile لنقلها بين الملفات
Unicode والنص الدولي
جميع معالجات السلاسل النصية أصلية بـ Unicode. يقرأ HotXLS ويكتب ملفات Excel المكتوبة بأي لغة،
بما في ذلك CJK، العربية، العبرية، التايلاندية، والنصوص الأخرى، مع دعم النص ثنائي الاتجاه وترتيب القراءة
بشكل صحيح

الجداول المحورية (XLS الكلاسيكي)
قم بإنشاء جداول محورية من نطاق مصدر باستخدام
TXLSWorksheet.AddPivotTable، وتكوين موضع الحقل وتنسيقات أرقام حقل البيانات، و
فحص النموذج المحوري من خلال TXLSWorksheet.PivotTables
راجع Classic XLS pivot table API لمعرفة تفاصيل الحقل والتصفية
المزايا
| No Office dependency | يقرأ ويكتب ملفات XLS و XLSX مباشرة على المستوى الثنائي. لا يلزم تثبيت Microsoft Excel أو Office أو ترخيصه أو تشغيله. هذا يلغي عبء أتمتة COM/OLE، ويتجنب قيود الترابط التي يفرضها التشغيل البيني لـ Office، ويسمح باستخدام HotXLS في سياقات الخادم و الخدمة حيث يكون تثبيت Office على سطح المكتب غير عملي |
| High performance | تمت كتابة محللات BIFF8 و OOXML بلغة Object Pascal الأصلية بدون تخصيص XML DOM وسيط للمسار النشط. يمكن قراءة وكتابة المصنفات الكبيرة التي تحتوي على مئات الآلاف من الصفوف بحد أقصى للذاكرة منخفض. يتم تطبيق إلغاء تكرار السلسلة المشتركة وضغط الصيغة المشتركة تلقائيًا للحفاظ على صغر أحجام الملفات |
| OLE migration path | يعكس سطح واجهة برمجة التطبيقات للواجهة الكلاسيكية (المصنف، ورقة العمل، النطاق، الخط، الحدود، الداخل، إعداد الصفحة) نموذج كائن Excel المألوف من أتمتة OLE بشكل وثيق. هذا يجعل ترحيل مشاريع OLE الحالية مباشرًا: استبدل استدعاءات COM باستدعاءات HotXLS، وأزل اعتماد Office واحصل على الأداء الأصلي |
| Dual-facade design |
يستمر كود XLS القديم في التجميع والتشغيل دون تغيير مقابل lxHandle بينما يستخدم كود XLSX
الجديد واجهة lxHandleX الأغنى. ترحيل تنسيق ملف واحد في كل مرة آمن و
تزايدي
|
| Formula engine included |
يتعامل محرك الحساب متعدد التمريرات المدمج مع دوال ورقة العمل الأكثر شيوعًا دون الحاجة إلى
قيام Excel بإعادة الحساب عند الفتح. يتم التعامل مع الدوال المخصصة من خلال الاستدعاء OnUserFunction
|
| Easy to use |
مكونات Delphi الجاهزة (TDataToXLS، TGridToXLS) لا تتطلب أي كود لمهام
التصدير الشائعة. تدعم واجهة برمجة تطبيقات النطاق السلسة تدوين A1 وتدوين R1C1 وفهرسة
الصفوف/الأعمدة المستندة إلى الصفر
|
| Thread-safe file I/O |
نظرًا لعدم وجود عملية Office مشتركة، يمكن إنشاء مثيلات TXLSXWorkbook متعددة وحفظها
بشكل متزامن في خيوط مستقلة دون مزامنة، مما يجعل HotXLS
مناسبًا لخوادم إنشاء التقارير متعددة الخيوط
|
التوافق
يتوافق HotXLS مع إصدارات RAD Studio التالية:
| Delphi | XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria, 12 Athens, 13 Florence |
| C++Builder | XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria, 12 Athens, 13 Florence |
| Target platforms | Windows 32-bit و 64-bit |
| Excel file formats | XLS (BIFF8, Excel 97–2003), XLSX (OOXML, Excel 2007+), ODS (OpenDocument 1.2) |
| Export-only formats | HTML, RTF, CSV, TSV |
انظر أيضًا
- XLSX Facade Overview (lxHandleX) — التسلسل الهرمي الكامل للفئات و أعضاء واجهة برمجة التطبيقات الخاصة بـ XLSX/ODS
- API Tour Demo — أول عرض توضيحي للتشغيل عند تعلم HotXLS من الصفر
- IXLSWorkbook — مرجع واجهة مصنف XLS الكلاسيكي
- TXLSWorksheet — مرجع فئة ورقة عمل XLS الكلاسيكية
- IXLSRange — واجهة النطاق: الوصول إلى الخلايا، التنسيق، والعمليات
- TXLSXWorkbook — مرجع فئة مصنف XLSX
- TXLSXWorksheet — مرجع فئة ورقة عمل XLSX
- TGridToXLS — مكون التصدير الجاهز من DBGrid إلى Excel
- TDataToXLS — مكون التصدير الجاهز من مجموعة البيانات إلى Excel
- OnUserFunction callback — نقطة امتداد دالة ورقة العمل المخصصة
- Classic XLS color model — الأساس المنطقي لتصميم الألوان القائمة على اللوحة وألوان السمة
- Classic XLS additional API members — خصائص الحساب، خصائص المستند، الجداول المحورية، والمزيد
- الأمثلة — نظرة عامة على المشاريع النموذجية
- Purchase Order Sample — مثال شامل لإنشاء XLS مع كود المصدر
