لدمج ملفات CSV، أضف ملفين أو أكثر واختر طريقة الجمع بينها. يجمع التجميع صفوف كل الملفات في جدول واحد، مع مطابقة الأعمدة حسب اسم العنوان، فيبقى العمود الموجود في بعض الملفات فقط ويُترك فارغًا في غيرها؛ وهذا ما يقصده أغلب الناس بدمج الملفات الشهرية أو ملفات الفروع. أما الربط فيضع ملفين جنبًا إلى جنب حسب عمود مفتاحي أو أكثر، كدالة البحث في جداول البيانات، ويذكر عدد الصفوف المتطابقة والمفاتيح المكررة وعدد الصفوف الإضافية الناتجة عنها. يتحدّث الجدول المدمج مع تغيير الخيارات، وتُدمج الملفات في متصفحك ولا تُرفع أبدًا.
طريقة دمج ملفات CSV
- أضِف الملفات. يُقرأ كل ملف مع اكتشاف محدِّده وترميزه، ويُعدّ صفه الأول صف عناوين. تعرض القائمة عدد صفوف كل ملف وأعمدته الأولى؛ ويمكن نقل الملفات لأعلى أو لأسفل لتحديد الترتيب.
- اختر التجميع لوضع صفوف كل الملفات بعضها تلو بعض، أو الربط لمطابقة صفوف أول ملفين حسب مفتاح.
- راجع المعاينة والملاحظات فوقها، ثم نزّل النتيجة بصيغة CSV أو افتحها في محرر CSV لمواصلة العمل.
تحتفظ الصفوف بترتيب قائمة الملفات: كل صفوف الملف الأول، ثم كل صفوف الثاني، وهكذا. ولدمج ملفات مصدَّرة شهريًا كثيرة، أضِفها كلها دفعة واحدة وفعّل عمود المصدر، فيذكر كل صف الملف الذي جاء منه.
التجميع: ملفات بأعمدة مختلفة بعضها تحت بعض
للتجميع ثلاث طرق لمحاذاة الأعمدة، ويُختار منها ما يناسب طريقة اختلاف الملفات.
| المطابقة حسب اسم العنوان (افتراضي) | تضم النتيجة كل عناوين كل الملفات، بترتيب أول ظهور لها. والصف القادم من ملف ينقصه عمود يحصل فيه على قيمة فارغة. ويجب أن تتطابق الأسماء تمامًا: SKU وsku يصبحان عمودين. |
|---|---|
| اشتراط تطابق العناوين | يتوقف برسالة خطأ تذكر أول ملف تختلف عناوينه في الاسم أو العدد أو الترتيب. يُستخدم عندما يُفترض أن تأتي كل الملفات من التصدير نفسه، فيدل العمود الذي أُعيدت تسميته على خلل. |
| المطابقة حسب الموضع | العمود 1 تحت العمود 1، وهكذا. تُؤخذ العناوين من الملف الذي فيه أكبر عدد من الأعمدة، وتحصل الملفات الأقصر على قيم فارغة في النهاية. لا يُستخدم إلا إذا لم يكن للملفات صف عناوين صالح، أو كانت لها البنية نفسها بأسماء مختلفة. |
| إضافة عمود المصدر | يضيف عمودًا أخيرًا اسمه source_file ما لم يُغيَّر، فيه اسم ملف كل صف. ويجب ألا يكون هذا الاسم عنوانًا موجودًا. |
| إزالة الصفوف المكررة | بعد التجميع يحذف كل صف مطابق لصف سابق، ويذكر عدد الصفوف المحذوفة. وتبقى النسخة الأولى. يجب أن تتطابق القيم تمامًا بما فيها حالة الأحرف والمسافات؛ ويُتجاهل عمود المصدر، فيُعدّ الصف نفسه في ملفين مكررًا. |
المطابقة حسب الموضع تضع القيم تحت عنوان خاطئ إذا كان في أحد الملفات عمود زائد أو أعمدة بترتيب مختلف: في المثال أدناه كانت قيمة qty في الملف april.csv ستقع تحت name. والمطابقة حسب اسم العنوان تتجنب ذلك ما دام للملفات صف عناوين.
الربط: ضم ملفين حسب مفتاح
يستخدم الربط أول ملفين في القائمة طرفًا أيسر وطرفًا أيمن. يُختار زوج واحد أو أكثر من الأعمدة المفتاحية، ويمكن أن يختلف الاسمان في كل زوج، مثل customer_id في الملف الأيسر وid في الأيمن. ومع عدة أزواج لا يتطابق الصف إلا إذا تطابقت كل الأزواج.
| الربط الأيسر (افتراضي) | كل صفوف الملف الأيسر، مع ملء أعمدة الملف الأيمن حيث تطابق المفتاح وتركها فارغة حيث لم يتطابق. |
|---|---|
| الربط الداخلي | صفوف الملف الأيسر التي يوجد مفتاحها في الملف الأيمن فقط. |
| الربط الأيمن | كل صفوف الملف الأيمن: الصفوف المتطابقة بترتيب الملف الأيسر، تليها صفوف الملف الأيمن التي لم تطابق شيئًا. |
| الربط الكامل | كل صفوف الملفين: نتيجة الربط الأيسر تليها صفوف الملف الأيمن التي لم تطابق شيئًا. |
| تجاهل حالة الأحرف والمسافات المحيطة في المفاتيح | تطابق C02 القيمة c02. ويُكتب في النتيجة نص المفتاح من الملف الأيسر. |
تضم النتيجة كل أعمدة الملف الأيسر، ثم أعمدة الملف الأيمن عدا أعمدته المفتاحية. والعمود الأيمن الذي اسمه مستخدم مسبقًا تُضاف إليه اللاحقة (2)، مثل total (2)، وتذكر الملاحظات الأعمدة التي أُعيدت تسميتها. وفي صف الملف الأيمن الذي لم يطابق شيئًا يُكتب مفتاحه في العمود المفتاحي الأيسر، وتبقى أعمدة الملف الأيسر الأخرى فارغة.
إذا ظهر مفتاح أكثر من مرة في الملف الأيمن، يتكرر كل صف أيسر مطابق مرة لكل تطابق. تعدّ الملاحظات الصفوف المتطابقة، والصفوف الموجودة في الأيسر فقط أو في الأيمن فقط، والمفاتيح المكررة في كل طرف، والصفوف الإضافية الناتجة، فيظهر فورًا أن عملية بحث يُفترض أن تكون واحدًا لواحد ليست كذلك.
القيم والعناوين والمحدِّدات المختلفة
- القيم نصوص وتبقى كما كُتبت تمامًا، فتحتفظ
00123 بأصفارها في البداية. والمفاتيح أيضًا تُقارَن كنص: 00123 و123 لا يتطابقان، حتى مع تجاهل حالة الأحرف والمسافات. - المحدِّدات وعلامات الاقتباس وفواصل الأسطر داخل القيم بين علامات اقتباس تُقرأ وفق RFC 4180، وتُحاط بعلامات اقتباس من جديد حيث يلزم في الملف المنزَّل.
- داخل الملف الواحد يصبح العنوان الفارغ
Column 3 والمكرر name (2). وتشارك هذه الأسماء المولَّدة في المطابقة حسب اسم العنوان كأي اسم آخر. - يمكن أن تستخدم الملفات محدِّدات وترميزات مختلفة، ويُكتشف كل منها على حدة. يكون الملف المنزَّل مفصولًا بفواصل، وتتبع نهايات أسطره وترميزه الملف الأول في القائمة. والترميزات التي لا يستطيع المتصفح كتابتها، مثل Shift_JIS، تُحفظ بـUTF-8.
مشكلات التجميع والربط
- أعمدة تظهر مرتين بأسماء مختلفة قليلًا. الملفات تكتب العنوان بطرق مختلفة (
Email وemail، أو مسافة في الآخر). أعِد تسمية أحدها بأداة إعادة تسمية أعمدة CSV وترتيبها قبل الدمج، أو استخدم المطابقة حسب الموضع إذا كانت البنية متطابقة. - الربط لم يطابق شيئًا تقريبًا. تحقّق من أن المفاتيح مكتوبة بالطريقة نفسها في الملفين: الأصفار في البداية والبادئات والمسافات كلها تُحتسب. فعّل تجاهل حالة الأحرف والمسافات المحيطة، أو أزِل المسافات من العمود أولًا بأداة تنظيف بيانات CSV.
- في نتيجة الربط صفوف أكثر من الملف الأيسر. الملف الأيمن يكرر مفتاحًا؛ وتذكر الملاحظات عدد المفاتيح المكررة وعدد الصفوف الإضافية التي أنتجتها. احذف التكرارات أو اختر زوج مفاتيح أدق.
- الجدول المدمج يتجاوز حد المتصفح. يمكن أن تضم النتيجة 100 ألف صف ومليوني خلية على الأكثر. صفِّ المدخلات أولًا، أو ادمج عددًا أقل من الملفات في كل مرة.
حدود الدمج والخصوصية
يمكن أن يصل كل ملف إلى 25 ميغابايت و100 ألف صف و250 عمودًا ومليوني خلية، وتخضع نتيجة الدمج أو الربط للحد نفسه: 100 ألف صف ومليونا خلية. والدمج لا يعمل تدفقيًا: يُحمَّل كل ملف في الذاكرة.
تُقرأ الملفات في عامل خلفي داخل علامة التبويب هذه وتُدمج في متصفحك، ولا تُرسل أبدًا إلى أي خادم. ولمعرفة ما تغيّر بين نسختين من ملف بدل جمعهما، استخدم مقارنة ملفات CSV؛ ولتقطيع ملف واحد إلى عدة ملفات، استخدم تقسيم ملفات CSV.
مثال: تجميع ملفَّي مخزون بأعمدة مختلفة
ملفا مخزون مُصدَّران بأعمدة مختلفة، جُمعا بالمطابقة حسب اسم العنوان مع تفعيل عمود المصدر. العمودان name وwarehouse موجودان في ملف واحد فقط، فتبقى صفوف الملف الآخر فارغة فيهما، وتحتفظ رموز SKU بأصفارها في البداية.
march.csv sku,name,qty 00123,"Desk lamp, brass",4 00456,Shelf,2 april.csv sku,qty,warehouse 00789,10,North 00456,2,
sku,name,qty,warehouse,source_file 00123,"Desk lamp, brass",4,,march.csv 00456,Shelf,2,,march.csv 00789,,10,North,april.csv 00456,,2,,april.csv
أسئلة وأجوبة
هل يمكن ربط أكثر من ملفين؟
ليس في خطوة واحدة. يستخدم الربط أول ملفين في القائمة. نزّل النتيجة أو افتحها، ثم اربطها بالملف التالي. أما التجميع فلا حد له من هذا النوع، ويجمع كل الملفات المضافة.
هل تقارن إزالة الصفوف المكررة عمودًا مفتاحيًا فقط؟
لا. لا يُحذف الصف إلا إذا تطابقت كل قيمه تمامًا مع صف سابق. وللإبقاء على صف واحد لكل معرّف، مرّر النتيجة على تنظيف بيانات CSV واحذف التكرارات هناك حسب العمود المفتاحي.
لماذا وضعت المطابقة حسب الموضع قيمًا تحت عنوان خاطئ؟
وضع الموضع يتجاهل أسماء العناوين ويأخذ العناوين من الملف الذي فيه أكبر عدد من الأعمدة. فإذا كان في ملف عمود لا يوجد في غيره، تنزاح كل القيم التالية. انتقل إلى المطابقة حسب اسم العنوان.