قراءة ملفات Excel في C# باستخدام مكتبات مفتوحة المصدر ومجانية
هل تجد نفسك أحياناً تواجه صعوبة في قراءة ملفات Excel مباشرة في تطبيقات C# الخاصة بك؟ إذاً، لست وحدك! يواجه العديد من المطورين تحدي استخراج البيانات من جداول Excel دون الاعتماد على العمليات اليدوية. الخبر السار هو أن هناك طرقاً فعالة ومجانية لتحقيق ذلك باستخدام مكتبات مفتوحة المصدر. في هذه المقالة، سوف نستكشف كيفية قراءة ملفات Excel (.xls) مباشرة من برنامج C#، مما يلغي الحاجة إلى خطوات يدوية مملة.
المشكلة: المعالجة اليدوية لملفات Excel
تقليديًا، يختار العديد من المطورين نهجًا يدويًا من خلال تصدير أوراق Excel إلى تنسيق نص Unicode ثم تحليل الملفات الناتجة ذات الفصل بواسطة علامات التبويب. على الرغم من أن هذه الطريقة تعمل، إلا أنها ليست الأكثر كفاءة. قد تجدها مرهقة، خاصة إذا كنت بحاجة إلى تكرار هذه العملية كثيراً أو التعامل مع ملفات متعددة.
لحسن الحظ، هناك طرق أفضل لقراءة ملفات Excel برمجياً. دعونا نتعمق في الحل!
الحل: استخدام OLE DB لقراءة ملفات Excel
إحدى أبسط الطرق لقراءة ملفات Excel في C# هي استخدام مزود OLE DB (ربط الكائنات ودمج البيانات). باستخدام OLE DB، يمكنك الاتصال بملفات Excel كما لو كانت قواعد بيانات وتنفيذ استعلامات SQL لاسترجاع البيانات التي تحتاجها. إليك كيفية القيام بذلك خطوة بخطوة:
الخطوة 1: إعداد اتصالك
قبل قراءة البيانات، تحتاج إلى إعداد اتصال بملف Excel الخاص بك. إليك مثالًا على كيفية تنسيق سلسلة الاتصال الخاصة بك:
var fileName = string.Format("{0}\\fileNameHere", Directory.GetCurrentDirectory());
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
fileName
: هذه المتغير يحتفظ بالمسار إلى ملف Excel الخاص بك.connectionString
: هذا هو الاتصال بملف Excel الذي يتضمن مزود المعلومات ومصدر البيانات.
الخطوة 2: جلب البيانات
الآن بعد أن قمت بإنشاء الاتصال، يمكنك استرجاع البيانات من ورقة العمل المحددة باستخدام OleDbDataAdapter
. أدناه هو كود لجلب جميع البيانات من ورقة العمل:
var adapter = new OleDbDataAdapter("SELECT * FROM [workSheetNameHere$]", connectionString);
var ds = new DataSet();
// ملء DataSet بالبيانات المستخرجة
adapter.Fill(ds, "anyNameHere");
DataTable data = ds.Tables["anyNameHere"];
- استبدل
workSheetNameHere
باسم الورقة الفعلي التي ترغب في قراءة البيانات منها.
الخطوة 3: استخدم LINQ لمعالجة البيانات
بمجرد أن تحصل على البيانات في DataTable
، يمكنك استخدام LINQ (استعلام مدمج في اللغة) للتلاعب بالبيانات واستعلامها بسهولة. إذا كنت ترغب في تصفية أي صفوف حيث يكون حقل معين فارغًا، إليك كيفية القيام بذلك:
var data = ds.Tables["anyNameHere"].AsEnumerable();
var query = data.Where(x => x.Field<string>("phoneNumber") != string.Empty).Select(x =>
new MyContact
{
firstName = x.Field<string>("First Name"),
lastName = x.Field<string>("Last Name"),
phoneNumber = x.Field<string>("Phone Number"),
});
ملخص النقاط الرئيسية
لتلخيص الأمر، قراءة ملفات Excel في C# باستخدام مزود OLE DB هي عملية بسيطة وتقضي على الحاجة للتعامل اليدوي مع الملفات. إليك النقاط الرئيسية التي يجب تذكرها:
- قم بإعداد سلسلة الاتصال بشكل صحيح باستخدام مزود OLE DB.
- استخرج البيانات من Excel باستخدام
OleDbDataAdapter
. - استفد من LINQ لتصفية ومعالجة البيانات المستخرجة.
باتباع هذه الخطوات، يمكنك إنشاء تكامل سلس لقراءة ملفات Excel مباشرة في تطبيقات C# الخاصة بك.
الخاتمة
لا يجب أن تكون قراءة ملفات Excel بكفاءة في C# عملية مرهقة. باستخدام الطريقة التي قدمناها، يمكنك أتمتة العملية، وتوفير الوقت، والتركيز على ما يهم حقاً في تطوير تطبيقاتك.
الآن بعد أن زودتك بالمعرفة للقضاء على الخطوات اليدوية في قراءة ملفات Excel، اذهب وجربها في مشاريعك!