للجمع Excel ولغة بايثون وقد أصبح إحدى أقوى الطرق للعمل مع البيانات عندما نحتاج إلى معالجة التقارير الدورية، أو دمج الملفات من مصادر مختلفة، أو أتمتة المهام التي قد تستغرق ساعات يدويًا في برنامج إكسل، فإن تعلم كيفية الجمع بين هذين المجالين يفتح الباب أمام سير عمل أسرع بكثير، والأهم من ذلك، قابل للتكرار. إذا كنت تعمل يوميًا مع جداول البيانات، أو ملفات CSV، أو تقارير الأعمال، أو قوائم التحليل، فإن هذا النهج لا يُقدّر بثمن.
الفكرة الرئيسية بسيطة: يظل برنامج Excel واجهتك المريحة لعرض البيانات وإعدادها، أما لغة Python فهي المحرك الذي يقوم بأتمتة ودمج كل شيء في الخلفية.بفضل استخدام لغة بايثون الجديدة المدمجة في برنامج إكسل، يمكنك الآن تغطية أي حاجة تقريبًا.
خيارات لدمج بيانات Excel مع Python باستخدام pandas
الطريقة الأكثر شيوعًا لدمج بيانات Excel مع Python هي استخدم مكتبة بانداوالذي يوفر وظائف قوية للغاية لقراءة جداول البيانات ودمجها وتحويلها. جوهر هذه العمليات هو pandas.merge()، والتي تعمل بشكل مشابه لمجموعات الجداول في قواعد البيانات أو VLOOKUP/XLOOKUP المحسّن بشكل كبير.
El التدفق الأساسي وعادةً ما يتبع ذلك أربع خطوات:
- استورد مكتبة باندا.
- اقرأ الملفات.
- ادمجهما.
- قم بمسح القيم المفقودة.
باستخدام هذه العملية، يمكنك إجراء عمليات ربط كاملة بين ملفين، مما يضمن عدم فقدان المعلومات والتحكم في جميع الأوقات في الصفوف التي يتم تضمينها والصفوف التي يتم استبعادها.
استورد واقرأ
بادئ ذي بدء، يتم استيراد مكتبة pandas إلى برنامج بايثون الخاص بك بتعليمات بسيطة مثل import pandas as pdومن هناك يمكنك قراءة مصنفات Excel الخاصة بك باستخدام pd.read_excel() أو، إذا كنت تعمل مع ملفات CSV، فاستخدم pd.read_csv()تغيير وظيفة القراءة فقط مع الحفاظ على بقية التدفق كما هو تمامًا.
تتيح لك قراءة ملفات Excel و CSV باستخدام pandas تحويل كل ورقة أو ملف إلى DataFrame.هذا جدول موجود في الذاكرة، يمكنك بعد ذلك إجراء عمليات التصفية والتجميع، وبالطبع عمليات الربط. على سبيل المثال، يمكنك قراءة ملفين على النحو التالي: df_left = pd.read_excel("ventas_enero.xlsx") y df_right = pd.read_excel("ventas_febrero.xlsx")أو الصيغة مع read_csv إذا كان المصدر ملف CSV.
الاندماج
تأتي اللحظة الحاسمة عندما تستخدم pd.merge() لدمج إطارين بياناتتستقبل هذه الدالة، كحد أدنى، الوسائط التالية: left y rightوالتي تشير إلى الجداول التي تريد دمجها، ومعامل how وهو ما يحدد نوع الاتحاد. سلوك how من الضروري التحكم فيما إذا كان سيتم الاحتفاظ بجميع الصفوف، أو الصفوف المتطابقة فقط، أو تلك الموجودة على جانب واحد فقط.
بين القيم الأكثر استخدامًا لـ how هم inner y outer. مع inner سيتم الاحتفاظ فقط بالصفوف الموجودة في كلا إطاري البيانات وفقًا لمفتاح الدمج الذي تحدده؛ أي أنك تحتفظ فقط بتقاطع البيانات. outer يتم دمج جميع الصفوف من كلا الملفين. وعندما تكون قيمة ما مفقودة لعمود معين في أي من الجدولين، فسيتم ملؤها بقيمة NaN (غير موجودة).
بالإضافة إلى الأعمدة، تسمح مكتبة باندا الدمج باستخدام الفهارس left_index y right_indexإذا قمت بتفعيل هذه الوسائط (على سبيل المثال، left_index=True, right_index=Trueيتم إجراء عملية الربط باستخدام فهارس الصفوف بدلاً من أعمدة محددة. يُعد هذا الخيار مفيدًا للغاية عندما يكون الفهرس مُعدًا مسبقًا كمعرف فريد، أو عندما لا تكون الأعمدة مُحاذية بشكل صحيح بينما يكون الفهرس كذلك.
القيم الفارغة
بعد دمج إطارات البيانات، عادةً ما يكون من الضروري محاولة القيم الفارغةفي كثير من الأحيان، قد ترغب في تحويل القيم الرقمية NaN إلى أصفار وترك نص واضح لحقول النصوص. النمط الشائع هو كالتالي: استخدم select_dtypes('string') لتحديد أعمدة النص وملئها بكلمة مثل "فارغ"، واستخدام select_dtypes('number') بالنسبة للأعمدة الرقمية، استبدل قيم NaN الخاصة بها بـ 0هذا يمنع حدوث مشاكل لاحقة عند التصدير إلى Excel أو إجراء العمليات الحسابية.
ضع في اعتبارك أن ملء القيم المفقودة يتطلب احترم نوع بيانات كل عمودإذا حاولت تطبيق fillna(0) إذا حاولت معالجة أعمدة النصوص مباشرةً، فستفشل العملية، لذا يُفضّل فصل أعمدة الأرقام عن أعمدة النصوص أولاً. يمنع هذا الفصل حدوث الأخطاء ويتيح لك التحكم في العنصر النائب الذي تستخدمه لكل نوع من البيانات.

دمج ملفات Excel و CSV التي تحتوي على نفس عدد الصفوف
في العديد من السيناريوهات العملية التي تواجهها ملفان يشتركان في نفس عدد الصفوف وعمود مشترك واحد. والذي يعمل كمحور مركزي: على سبيل المثال، قائمة عناوين URL لموقع إلكتروني مع مقاييس تحسين محركات البحث في ملف، وبيانات الزيارات أو التحويلات في ملف آخر. في هذه الحالات، يكون الربط بسيطًا للغاية، مما يسمح لك بإضافة المزيد من المعلومات إلى كل صف دون فقدان تناسق البيانات.
عندما يتطابق عدد الصفوف في كلا الملفين ولا يتغير عمود المفتاح، يصبح دمج البيانات بسيطًا نسبيًا، ولكن يُنصح مع ذلك بالحفاظ على بنية منظمة. من الأفضل قراءة كلا الملفين باستخدام مكتبة Pandas، والتأكد من أن عمود الربط (مثل "URL") مكتوب بشكل متطابق وله نفس نوع البيانات، ثم تشغيل... merge وهذا يحافظ على جميع الصفوف.
يحظى هذا النوع من الاتحاد باهتمام خاص تحقق من أن كلا الجدولين لهما نفس الطولإذا احتوى أحد الملفات على صفوف إضافية، فقد تفقد معلومات أو تُنشئ صفوفًا غير ضرورية. لذا، قبل الدمج، من المنطقي التحقق من شيء مثل... len(df1) y len(df2) للتحقق من أن حجم السجلات هو نفسه بالفعل.
بعد دمج ملف Excel و/أو CSV، فإن الخطوة المنطقية التالية هي قم بتصدير النتيجة إلى مصنف جديدتتيح لك مكتبة Pandas الكتابة مباشرةً باستخدام to_excel()سيؤدي هذا إلى إنشاء ملف في مجلد مشروع بايثون الخاص بك ما لم تحدد مسارًا مختلفًا. وبهذه الطريقة، تنعكس جميع عمليات الدمج في ملف إكسل قياسي يمكنك فتحه وتصفيته وتنسيقه ومشاركته.
استخدام لغة بايثون مباشرة داخل برنامج إكسل (بايثون في إكسل)
بالإضافة إلى العمل مع البرامج النصية الخارجية، أصبح استخدام البرامج النصية الخارجية ذا أهمية متزايدة. التكامل الرسمي للغة بايثون داخل برنامج إكسلتتيح لك هذه الوظيفة كتابة كود بايثون في الخلايا، على غرار كيفية كتابة الصيغة، ودمجه مع النطاقات والجداول الموجودة بالفعل في المصنف.
للبدء باستخدام لغة بايثون في برنامج إكسل، يمكنك القيام بما يلي: من علامة تبويب الصيغعن طريق اختيار خيار إدراج بايثون في الخلية النشطة، أو عن طريق استخدام الدالة مباشرة =PY()بمجرد القيام بذلك، يفهم برنامج Excel أن المحتوى الموجود داخل تلك الخلية سيتم تفسيره كشفرة Python، مع الاحتفاظ بعلامة مرئية صغيرة تحمل رمزًا تعريفيًا. إذا كنت بحاجة إلى مزيد من التفاصيل العملية، فراجع دليلنا. دليل شامل لاستخدام لغة بايثون في برنامج إكسل.
أحد مفاتيح هذا التكامل هو وظيفة مساعدة xl()والذي يعمل كجسر بين Excel و Pythonبفضل ذلك، يمكنك الإشارة إلى نطاقات Excel أو الجداول أو الاستعلامات أو الأسماء المحددة داخل كود Python.
لا يزال جدول البيانات يحترم ترتيب الحساب، ولكن يتم تنفيذ خلايا بايثون صفًا تلو الآخر.من اليسار إلى اليمين، ثم إلى أسفل الصفحة.
يوفر شريط الصيغة وضع تحرير مناسب لرمز بايثون.يسمح بفواصل الأسطر، والتوسيع لعرض عدة أسطر في وقت واحد، واختصارات لوحة المفاتيح لتوسيع أو طي منطقة الكتابة.

التحكم في المخرجات، وإعادة الحساب، ومعالجة الأخطاء في بايثون لبرنامج إكسل
عند استخدامك لغة بايثون داخل برنامج إكسل، يمكنك اختر الطريقة التي تريد أن تُعرض بها النتائجلديك خيار تحويل النتيجة إلى قيم Excel الكلاسيكية، والتي تُكتب مباشرةً في الخلية، أو الاحتفاظ بها ككائنات Python. يُعد هذا مفيدًا بشكل خاص عند العمل مع هياكل مثل DataFrames.
إذا قمت بإرجاع العملية الحسابية ككائن بايثون، يتم عرض الخلية باستخدام رمز البطاقة.يؤدي النقر على عنصر ما إلى فتح معاينة تعرض تفاصيله. يُعدّ هذا مفيدًا للغاية عند العمل مع مجموعات بيانات كبيرة. تتيح لك هذه الطريقة التعامل مع نتائج غنية دون إثقال ورقة العمل بمئات أو آلاف الصفوف الظاهرة.
تتوافق أنواع بيانات معينة بشكل ممتاز مع هذا التكامل، وتُعدّ إطارات بيانات Pandas من أبرزها. يُسهّل العمل مع إطارات البيانات داخل Excel الانتقال من التحليل البرمجي إلى عرض النتائج في جداول أو رسوم بيانية تقليدية.
تتم إعادة الحساب بنفس طريقة صيغ Excel الأخرى، ولكن مع بعض الخصائص المميزة.في كل مرة تُجري فيها تغييرًا على خلية تعتمد عليها صيغة بايثون، يُعاد حساب تسلسل خلايا بايثون المعنية. ولتحسين الأداء، خاصةً عند العمل مع نماذج كبيرة، يمكنك التبديل إلى وضع الحساب الجزئي أو اليدوي، بحيث لا تتم إعادة الحساب إلا عند طلبها صراحةً.
في هذه الأوضاع اليدوية لديك هناك عدة طرق لإعادة بدء الحسابيمكنك تحديث القيمة بالضغط على F9، أو بالنقر على زر "الحساب الآن" في شريط الصيغة، أو في بعض الحالات، باستخدام مؤشر الخلية الذي يُظهر أن القيمة قديمة. تُساعدك هذه المرونة على تحقيق التوازن بين الدقة والأداء أثناء تطوير تحليلاتك.
أتمتة تحميل ومعالجة ملفات Excel باستخدام برامج بايثون النصية
وبغض النظر عن البيئة المتكاملة في برنامج إكسل، فإنه لا يزال شائعًا جدًا العمل مع برامج بايثون خارجية لمعالجة ملفات الإدخاليتضمن النمط النموذجي وجود ملف تكوين (على سبيل المثال، config.json) نص برمجي مثل data_processing.py وواحد أو أكثر من مصنفات Excel التي تعمل كمصادر بيانات.
تكون آلية العمل كما يلي:
- قم بإعداد ملف Excel المدخلوالتي يمكنك تسميتها بشيء من هذا القبيل
input.xlsxيتم وضع هذا الملف في نفس المجلد الذي يوجد به برنامج بايثون النصي لتبسيط المسارات، خاصة إذا كنت مبتدئًا ولا تريد أن تتعثر في المسارات المطلقة أو النسبية الأكثر تقدمًا. - أنشئ ملف الكود. على سبيل المثال
data_processing.pyفي محرر النصوص أو بيئة التطوير المتكاملة المفضلة لديك، انسخ قاعدة التعليمات البرمجية الحالية (الفئات، والوظائف، وما إلى ذلك) وقم بتكييفها مع احتياجاتك الخاصة، واحفظ التغييرات في كل مرة تضيف فيها جزءًا جديدًا من المنطق المتعلق بقراءة البيانات أو تحويلها. - احفظ النص البرمجي وقم بتشغيل البرنامج من الطرفية.بافتراض أنك في نفس الدليل الذي يوجد فيه
data_processing.pyسترمي شيئًا مثلpython data_processing.py config.json input.xlsxقم بتعديل اسم ملف الإعدادات ليتوافق مع موقعك. الفكرة هي أن يقوم البرنامج النصي بقراءةconfig.jsonلتحديد العمليات التي يجب تطبيقها، ثم العمل عليهاinput.xlsx.
IronXL: دمج خلايا Excel ومعالجتها باستخدام لغة Python
بالإضافة إلى مكتبة باندا وتكامل بايثون الأصلي في برنامج إكسل، توجد مكتبات متخصصة مثل IronXL مصمم للتعامل مع ملفات Excel بطريقة دقيقة للغايةباستخدامها، لا يمكنك فقط قراءة البيانات وكتابتها، ولكن يمكنك أيضًا تنسيق الخلايا ودمجها وفصلها، أو العمل مع الصيغ المتقدمة من تطبيقات بايثون الخاصة بك.
تم تصميم IronXL للعمل مع تنسيقات جداول البيانات المختلفةمن الكلاسيكيات XLSX y XLS حتى الكتب التي تحتوي على وحدات ماكرو (XLSM), قوالب ( ), قوالب ( ),XLTX) أو حتى ملفات نصية منظمة مثل CSV y TSVكل هذا يعمل عبر منصات متعددة: ويندوز، ماك أو إس، لينكس، حاويات دوكر، وحتى بيئات الحوسبة السحابية مثل أزور أو AWS.
تُسهّل واجهة برمجة تطبيقات IronXL المهام اليومية بشكل كبير عندما تحتاج إلى معالجة التنسيق.يمكنك تحديد أوراق العمل، وقراءة وكتابة القيم في خلايا محددة، والتحكم في الخطوط، وألوان الخلفية، والحدود، والمحاذاة، وتنسيقات الأرقام، والتواريخ، والنسب المئوية، والعملات، وغير ذلك. علاوة على ذلك، تُعاد حسابات صيغ Excel تلقائيًا عند تغيير الخلايا المعنية، مما يحافظ دائمًا على السلوك المتوقع للمستخدمين المعتادين على Excel.
لبدء استخدام IronXL في مشروع بايثون، ستحتاج أولاً إلى قم بتثبيت الحزمة باستخدام pipباستخدام أمر مثل pip install ironxlثم تقوم باستيراد الوحدة باستخدام شيء مثل from ironxl import * وفي البيئات التي تتطلب ذلك، يمكنك إنشاء مفتاح ترخيص، والذي يمكنك الحصول عليه مجانًا من موقع الويب الخاص بالمزود في حالة الإصدارات التجريبية.
بعد تهيئة المكتبة، تكون الخطوة الأولى هي قم بتحميل مصنف Excel الذي تريد تعديله.. على سبيل المثال ، workbook = WorkBook.Load("test_excel.xlsx") سيفتح ملفًا يسمى test_excel.xlsx للعمل معه في الذاكرة. من تلك اللحظة فصاعدًا، يمكنك التنقل بين صفحاته، وتغيير البيانات، ودمج المناطق، وأخيرًا حفظ النتيجة ببساطة workbook.Save().
دمج وفصل خلايا محددة باستخدام IronXL
عندما لا يقتصر هدفك على دمج البيانات من مصادر مختلفة فحسب، بل يشمل أيضًا تحسين العرض في برنامج إكسل، يمكن أن يوفر لك دمج الخلايا برمجياً الكثير من الوقتتخيل عمودًا يحتوي على الدول، حيث تظهر عدة صفوف تحتوي على "الولايات المتحدة". قد ترغب في دمج هذه الخلايا لجعل التقرير أكثر وضوحًا للشخص الذي سيشاهده.
مع IronXL يمكنك حدد الورقة التي تريد العمل عليها من خلال الوصول إلى فهرسها أو اسمها.. على سبيل المثال ، worksheet = workbook.WorkSheets سينقلك هذا مباشرةً إلى الورقة الأولى من المصنف. ومن هناك، تُطبَّق عملياتك على تلك الورقة: قراءة الخلايا، والكتابة، والأنماط، أو الدمج.
إلى دمج الخلايا في نطاق محدد، لدى IronXL هذه الطريقة Merge() في الكائن الورقي. هذا يعني أنه يمكنك تشغيل شيء مثل worksheet.Merge("E5:E7") لدمج الصفوف من 5 إلى 7 من العمود E، و worksheet.Merge("E9:E10") لمجموعة أخرى. عندها سيتعين عليك فقط استدعاء workbook.Save() لحفظ التغييرات في ملف Excel.
إذا كنت بحاجة لمعرفة المناطق المندمجة الموجودة في الصفيحةيُتيح برنامج IronXL إمكانية التعافي المُبرمج. باستخدام طريقة مثل GetMergedRegions() يمكنك الحصول على قائمة بجميع مناطق الخلايا المدمجة والتكرار خلالها، وطباعة، على سبيل المثال، mergedRegion.RangeAddressAsString لعرض النطاق المتأثر بتنسيق قابل للقراءة (A1:B3، E5:E7، إلخ).
قد ترغب في مرحلة ما عكس عمليات الدمج تلكعلى سبيل المثال، لمعالجة البيانات صفًا صفًا. في هذه الحالة، تعرض نفس الورقة طريقةً Unmerge() والتي يمكنك تمرير نطاقات إليها مثل "E5:E7" o "E9:E10"بعد تنفيذ هذه المكالمات وحفظ المصنف، تصبح الخلايا مستقلة مرة أخرى، وجاهزة لتلقي قيم مختلفة أو معالجتها بطريقة أخرى.
في نهاية المطاف، يتيح لك الجمع بين Excel و Python الانتقال من العمل اليدوي والمتكرر إلى سير عمل أكثر ذكاءً.يظل برنامج إكسل هو برنامج العرض والتحكم، بينما تتولى لغة بايثون المهام الشاقة من قراءة البيانات، ودمجها، وتنظيفها، وإعادة حسابها. بمجرد أن تعتاد على هذه الطريقة، يصبح تكرار العمليات المعقدة مسألة نقرات قليلة، أو أمر واحد في سطر الأوامر.
