مكتبة C مفتوحة المصدر لقراءة ملفات Excel XLS
مكتبة C مجانية مفتوحة المصدر خفيفة وسريعة لتحميل وقراءة واستخراج البيانات من ملفات Excel XLS دون الحاجة إلى Microsoft Excel.
ما هو libxls؟
العمل مع ملفات Microsoft Excel هو مطلب شائع في العديد من تطبيقات البرمجيات. بينما تستخدم الجداول الحديثة صيغة XLSX، لا تزال العديد من المؤسسات تعتمد على ملفات XLS القديمة. قد يكون قراءة واستخراج البيانات من هذه الملفات تحديًا لأن صيغة XLS الثنائية مملوكة ومعقدة. libxls هي مكتبة C مفتوحة المصدر مصممة خصيصًا لتبسيط هذه المهمة. توفر حلاً سريعًا وخفيفًا لقراءة ملفات Excel 97–2003 XLS دون الحاجة إلى Microsoft Excel أو أي مكونات Office خارجية.
libxls هي مكتبة C محمولة تمكّن المطورين من قراءة واستخراج المعلومات من جداول بيانات Microsoft Excel XLS. تدعم ملفات Excel 97–2003 (.xls)، أوراق عمل متعددة، قيم الخلايا ومعلومات التنسيق، النص Unicode، استخراج التاريخ والأرقام، تطوير متعدد المنصات والمزيد. على عكس أساليب أتمتة المكتب، يعمل libxls بشكل مستقل عن Microsoft Office، مما يجعله مناسبًا لـ Linux و macOS و Windows والبيئات المدمجة. بفضل بساطته، قابلية نقله، وأدائه، يُستخدم libxls على نطاق واسع في أدوات ترحيل البيانات، محولات الجداول، تطبيقات التقارير، ومشاريع البرمجيات متعددة المنصات.
البدء مع libxls
يدعم libxls أداة CMake لبناء وتثبيت المكتبة. يرجى استخدام الأمر التالي.
تثبيت libxls عبر CRAN
mkdir build
cd build
cmake ..
make
استنساخ مستودع شفرة مصدر libxls من GitHub. يرجى استخدام الشيفرة التالية.
تثبيت libxls عبر GitHub
git clone https://github.com/libxls/libxls.git
# Or use your preferred protocol instead of https قراءة ملفات Excel XLS القديمة عبر مكتبة C
إحدى أكبر نقاط القوة في libxls هي قدرتها على تحليل ملفات XLS الثنائية لإكسل 97–2003. المكتبة تفهم البنية الداخلية لهذه الجداول وتسمح للتطبيقات بالوصول إلى الصفوف والأعمدة وقيم الخلايا دون الحاجة إلى Microsoft Excel. هذه القدرة مفيدة بشكل خاص للمنظمات التي لا تزال تحتفظ بالبيانات التاريخية بصيغة XLS. يمكن للمطورين بسهولة بناء أدوات استيراد وأتمتة عمليات استخراج البيانات مع الحفاظ على التوافق مع المستندات القديمة. المثال التالي يفتح مصنف Excel XLS باستخدام ترميز UTF-8. بمجرد تحميل المصنف، يمكن للمطورين الوصول إلى أوراق العمل واستخراج بيانات الجدول.
كيفية قراءة ملفات Excel XLS عبر مكتبة C
#include
int main()
{
xlsWorkBook *workbook;
workbook = xls_open("sample.xls", "UTF-8");
if(workbook)
{
printf("Workbook opened successfully\n");
xls_close_WB(workbook);
}
return 0;
}
الوصول إلى أوراق عمل متعددة عبر مكتبة C
العديد من ملفات Excel تحتوي على عدة أوراق عمل تنظم المعلومات في أقسام مختلفة. توفر libxls واجهات برمجة تطبيقات (APIs) للتنقل وقراءة كل ورقة عمل بشكل مستقل. هذه الميزة مفيدة عند معالجة التقارير المالية، الفواتير، جداول المخزون، أو مجموعات البيانات العلمية. يمكن للمطورين التكرار عبر جميع الأوراق واستخراج المعلومات تلقائيًا دون تدخل المستخدم. الكود التالي يفتح مصنفًا ويسترجع العدد الإجمالي لأوراق العمل المتاحة في الملف.
كيفية استرجاع العدد الإجمالي لأوراق العمل في ملف XLS عبر C؟
#include
int main()
{
xlsWorkBook *wb = xls_open("report.xls", "UTF-8");
if(wb)
{
printf("Number of sheets: %d\n", wb->sheets.count);
xls_close_WB(wb);
}
return 0;
}
قراءة قيم الخلايا عبر مكتبة C
يتيح مكتبة libxls مفتوحة المصدر للتطبيقات الوصول إلى الخلايا الفردية واسترجاع محتوياتها. سواء كانت الورقة تحتوي على نص أو أرقام أو تواريخ، توفر المكتبة وصولًا بسيطًا إلى معلومات الخلية. تجعل هذه القدرة libxls مناسبة لاستيراد بيانات الجداول إلى قواعد البيانات، أو إنشاء تقارير، أو تحويل مستندات Excel إلى صيغ CSV و JSON. المثال البرمجي التالي يقرأ الخلية الأولى في ورقة العمل ويطبع قيمتها على وحدة التحكم.
كيفية الوصول إلى خلايا ورقة العمل وطباعة قيمتها عبر مكتبة C؟
#include
int main()
{
xlsWorkBook *wb = xls_open("sample.xls", "UTF-8");
if(wb)
{
xlsWorkSheet *sheet = xls_getWorkSheet(wb, 0);
xls_parseWorkSheet(sheet);
xlsCell *cell = xls_cell(sheet, 0, 0);
if(cell)
printf("Cell value: %s\n", cell->str);
xls_close_WS(sheet);
xls_close_WB(wb);
}
return 0;
}
دعم Unicode وترميز الأحرف
غالبًا ما تعمل التطبيقات الحديثة مع جداول متعددة اللغات. تدعم libxls النص Unicode من خلال ترميزات أحرف قابلة للتكوين، مما يجعل من الممكن معالجة الملفات التي تحتوي على لغات دولية وحروف خاصة. هذه الميزة مفيدة بشكل خاص لتطبيقات الأعمال التي تتعامل مع أسماء العملاء وعناوينهم وتقاريرهم بلغات مختلفة. من خلال تحديد ترميز UTF-8، تفسر المكتبة النص Unicode المخزن داخل ملفات Excel بشكل صحيح كما هو موضح في المثال البرمجي التالي.
كيفية تفسير النص Unicode المخزن داخل ملفات Excel عبر C؟
xlsWorkBook *wb = xls_open("employees.xls", "UTF-8");
if(wb)
{
printf("Workbook loaded using UTF-8 encoding\n");
}