الوصول إلى وإدارة أوراق MS Excel مع دلفي

يصف هذا الدليل التفصيلي كيفية الاتصال بـ Microsoft Excel واسترداد بيانات الورقة وتمكين تحرير البيانات باستخدام DBGrid. ستجد أيضًا قائمة بالأخطاء الأكثر شيوعًا التي قد تظهر في العملية ، بالإضافة إلى كيفية التعامل معها.

ما يغطي أدناه:

  • طرق نقل البيانات بين Excel و دلفي. كيفية الاتصال ببرنامج Excel باستخدام ADO (كائنات بيانات ActiveX) ودلفي.
  • إنشاء محرر جدول بيانات Excel باستخدام Delphi و ADO
  • استرداد البيانات من Excel. كيفية الرجوع إلى جدول (أو نطاق) في مصنف Excel.
  • مناقشة حول أنواع حقول (العمود) في Excel
  • كيفية تعديل أوراق Excel: تحرير ، إضافة وحذف الصفوف.
  • نقل البيانات من تطبيق دلفي إلى Excel. كيفية إنشاء ورقة عمل وتعبئة البيانات المخصصة من قاعدة بيانات MS Access.

كيفية الاتصال بـ Microsoft Excel

يعد Microsoft Excel أداة حاسبة قوية لجداول البيانات وأدوات تحليل البيانات. منذ الصفوف والأعمدة من ورقة عمل Excel ترتبط ارتباطا وثيقا الصفوف والأعمدة من جدول قاعدة البيانات ، يجد العديد من المطورين أنه من المناسب نقل بياناتهم إلى مصنف Excel لأغراض التحليل ؛ واسترداد البيانات مرة أخرى إلى التطبيق بعد ذلك.

الطريقة الأكثر استخدامًا لتبادل البيانات بين تطبيقك و Excel هي

instagram viewer
أتمتة. يوفر التنفيذ التلقائي طريقة لقراءة بيانات Excel باستخدام طراز كائن Excel للتصفح في ورقة العمل ، واستخراج بياناتها ، وعرضها داخل مكون يشبه الشبكة ، أي DBGrid أو StringGrid.

يمنحك التنفيذ التلقائي أكبر قدر من المرونة لتحديد موقع البيانات في المصنف وكذلك القدرة على تنسيق ورقة العمل وإعداد مختلف الإعدادات في وقت التشغيل.

لنقل بياناتك من وإلى Excel دون التنفيذ ، يمكنك استخدام طرق أخرى مثل:

  • كتابة البيانات في ملف نصي محدد بفواصل ، والسماح لبرنامج Excel بتحليل الملف إلى خلايا
  • نقل البيانات باستخدام DDE (تبادل البيانات الديناميكي)
  • نقل البيانات الخاصة بك من وإلى ورقة عمل باستخدام ADO

نقل البيانات باستخدام ADO

نظرًا لأن Excel متوافق مع JET OLE DB ، يمكنك الاتصال به باستخدام دلفي باستخدام ADO (dbGO أو AdoExpress) ثم استرداد بيانات ورقة العمل في مجموعة بيانات ADO عن طريق إصدار استعلام SQL (كما لو كنت تفتح مجموعة بيانات مقابل أي قاعدة بيانات الطاولة).

بهذه الطريقة ، تتوفر كافة طرق وميزات كائن ADODataset لمعالجة بيانات Excel. بمعنى آخر ، يتيح لك استخدام مكونات ADO إنشاء تطبيق يمكنه استخدام مصنف Excel كقاعدة بيانات. حقيقة مهمة أخرى هي أن Excel خارج المعالجة خادم ActiveX. يعمل ADO قيد التشغيل ويوفر النفقات العامة للمكالمات خارج المعالجة المكلفة.

عند الاتصال بـ Excel باستخدام ADO ، يمكنك فقط تبادل البيانات الأولية من وإلى المصنف. لا يمكن استخدام اتصال ADO لتنسيق الورقة أو تطبيق الصيغ للخلايا. ومع ذلك ، إذا قمت بنقل بياناتك إلى ورقة عمل تم تنسيقها مسبقًا ، فسيتم الاحتفاظ بالتنسيق. بعد إدراج البيانات من تطبيقك إلى Excel ، يمكنك تنفيذ أي تنسيق شرطي باستخدام ماكرو (مسجل مسبقًا) في ورقة العمل.

يمكنك الاتصال بـ Excel باستخدام ADO مع موفري OLE DB اللذين يمثلان جزءًا من MDAC: موفر Microsoft Jet OLE DB أو موفر Microsoft OLE DB لبرامج تشغيل ODBC. سنركز على موفر Jet OLE DB ، والذي يمكن استخدامه للوصول إلى البيانات في مصنفات Excel من خلال برامج تشغيل أسلوب الوصول التسلسلي المفهرس القابل للتثبيت (ISAM).

تلميح: انظر دورة للمبتدئين في دلفي برمجة قاعدة بيانات ADO إذا كنت جديدًا على ADO.

The ConnectionString Magic

تخبر الخاصية ConnectionString ADO كيفية الاتصال بمصدر البيانات. تتكون القيمة المستخدمة لـ ConnectionString من وسيطة أو أكثر تستخدمها ADO لتأسيس الاتصال.

في دلفي ، يقوم مكون TADOConnection بتغليف كائن اتصال ADO. يمكن مشاركتها بواسطة العديد من مكونات مجموعة بيانات ADO (TADOTable ، TADOQuery ، إلخ) من خلال خصائص الاتصال الخاصة بها.

للاتصال بـ Excel ، تتضمن سلسلة الاتصال الصالحة قطعتين إضافيتين فقط من المعلومات - المسار الكامل إلى المصنف وإصدار ملف Excel.

قد تبدو سلسلة اتصال شرعية كما يلي:

ConnectionString: = 'Provider = Microsoft. طائرة نفاثة. OLEDB.4.0 ؛ مصدر البيانات = C: \ MyWorkBooks \ myDataBook.xls؛ الخصائص الموسعة = Excel 8.0؛ '؛

عند الاتصال بتنسيق قاعدة بيانات خارجية يدعمه Jet ، يجب تعيين الخصائص الموسعة للاتصال. في حالتنا ، عند الاتصال بقاعدة بيانات Excel ، يتم استخدام الخصائص الموسعة لتعيين إصدار ملف Excel.

بالنسبة لمصنف Excel95 ، هذه القيمة هي "Excel 5.0" (بدون علامات الاقتباس) ؛ استخدم "Excel 8.0" لـ Excel 97 و Excel 2000 و Excel 2002 و ExcelXP.

مهم: يجب عليك استخدام موفر Jet 4.0 لأن Jet 3.5 لا يدعم برامج تشغيل ISAM. إذا قمت بتعيين موفر Jet على الإصدار 3.5 ، فستتلقى الخطأ "تعذر العثور على ISAM القابل للتثبيت".

خاصية Jet الممتدة الأخرى هي "HDR =". "HDR = نعم" تعني أن هناك صف رأس في النطاق ، وبالتالي فإن Jet لن تتضمن الصف الأول من التحديد في مجموعة البيانات. إذا تم تحديد "HDR = لا" ، فسيقوم الموفر بتضمين الصف الأول من النطاق (أو النطاق المسمى) في مجموعة البيانات.

يعتبر الصف الأول في النطاق صف الرأس افتراضيًا ("HDR = نعم"). لذلك ، إذا كان لديك عنوان عمود ، فلن تحتاج إلى تحديد هذه القيمة. إذا لم يكن لديك عناوين أعمدة ، فأنت بحاجة إلى تحديد "HDR = لا".

الآن بعد أن أصبحت جاهزًا تمامًا ، فهذا هو الجزء الذي تصبح فيه الأمور مثيرة للاهتمام لأننا الآن على استعداد لبعض التعليمات البرمجية. دعونا نرى كيفية إنشاء محرر جداول بيانات Excel بسيط باستخدام دلفي و ADO.

ملحوظة: يجب المتابعة حتى إذا كنت تفتقر إلى المعرفة حول برمجة ADO و Jet. كما سترى ، يعد تحرير مصنف Excel بسيطًا مثل تحرير البيانات من أي قاعدة بيانات قياسية.