التعليقات

تحرير أوراق اكسل مع دلفي و ADO

تحرير أوراق اكسل مع دلفي و ADO

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

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

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

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

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

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

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

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

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

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

نظرًا لأن Excel متوافق مع JET OLE DB ، يمكنك الاتصال به مع Delphi باستخدام 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.

السحر ConnectionString

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

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

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

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

ConnectionString: = 'Provider = Microsoft.Jet.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 Provider على الإصدار 3.5 ، فستتلقى الخطأ "تعذر العثور على ISAM القابل للتثبيت".

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

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

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

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

شاهد الفيديو: استعمال قاعدة بيانات إكسيل في دلفي (شهر نوفمبر 2020).