HotXLS Docs

نظرة عامة

شعار HotXLS
مكتبة قراءة/كتابة 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، العربية، العبرية، التايلاندية، والنصوص الأخرى، مع دعم النص ثنائي الاتجاه وترتيب القراءة بشكل صحيح
مثال على دعم أحرف Unicode

الجداول المحورية (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 مع كود المصدر