الانتقال إلى الأداة
ViewCSV
الملفات تبقى على جهازك

مقارنة ملفات CSV

الملف الأصلي
orders.csv· بيانات نموذجية15 صفًا · 8 أعمدة
الملف المحدَّث
orders-updated.csv· بيانات نموذجية15 صفًا · 8 أعمدة
مطابقة الصفوف
الأعمدة المفتاحية
أعمدة تحدد الصف في الملفين، مثل رقم الطلب.
أعمدة تُتجاهل
  • الصفوف: مضافة 1، محذوفة 1، معدّلة 1، دون تغيير 13. القيم المعدّلة: 1.
  • يتكرر 1 مفتاح أكثر من مرة (أولها: ⁨001043⁩). تُقرن التكرارات بالترتيب.
  • معدّل001044الصف 4 في الملف الأصلي الصف 4 في الملف المحدَّث
    quantity112
  • محذوف001046الصف 6 في الملف الأصلي
  • مضاف001099 الصف 15 في الملف المحدَّث

يضم التنزيل سطرًا لكل قيمة معدّلة، إضافة إلى الصفوف المضافة والمحذوفة.

يُفتح الملف الأصلي والملف المحدَّث، ويُختار العمود الذي يحدد الصف، مثل رقم الطلب أو رمز المنتج (SKU)، فتظهر الفروق فورًا: الصفوف الموجودة في الملف المحدَّث فقط مضافة، والموجودة في الأصلي فقط محذوفة، والموجودة في الملفين بقيم مختلفة معدّلة، مع عرض كل قيمة قبل التغيير وبعده. ويمكن أن تنتقل الصفوف إلى أي موضع في الملف دون أن يُعدّ ذلك تغييرًا. تُنزَّل النتيجة تقريرًا بصيغة CSV فيه سطر لكل خلية معدّلة. يُقارَن الملفان في متصفحك ولا يُرفعان أبدًا.

طريقة مقارنة ملفي CSV

  1. افتح الملف الأصلي في الخانة الأولى والملف المحدَّث في الثانية. لكل خانة إعدادات استيراد خاصة بها للمحدِّد وصف العناوين والترميز، فيمكن مقارنة ملف مفصول بفواصل منقوطة بآخر مفصول بفواصل.
  2. اختر المطابقة حسب المفتاح، وحدِّد عمودًا مفتاحيًا أو أكثر من الأعمدة المشتركة بين الملفين. وتُستخدم عدة أعمدة إذا لم يكن أي عمود منفرد فريدًا، مثل order_id وline.
  3. اضبط خيارات المقارنة إن لزم، وراجع الملخص وقائمة الفروق، مع إمكانية قصرها على المضافة أو المحذوفة أو المعدّلة، ثم نزّل تقرير التغييرات.

تُستخدم المطابقة حسب موضع الصف بدلًا من ذلك إذا لم يكن في الملفين عمود معرّف وكانت الصفوف بالترتيب نفسه: يُقارَن الصف 1 بالصف 1، وهكذا. وعندئذ يكفي صف واحد مُدرج لتبدو كل الصفوف بعده معدّلة، لذا يُفضّل استخدام مفتاح متى توفر.

خيارات المقارنة

تجاهل حالة الأحرفتساوي ⁦Desk Lamp⁩ القيمة ⁦desk lamp⁩. وينطبق على الأعمدة المفتاحية والقيم معًا.
تجاهل المسافات الزائدةيزيل المسافات من الطرفين، ويعامل أي سلسلة من المسافات أو علامات الجدولة أو فواصل الأسطر داخل القيمة كمسافة واحدة قبل المقارنة. وينطبق على المفاتيح أيضًا.
هامش التفاوت للأرقامإذا كانت القيمتان رقمين، تُعدّان متساويتين إذا لم يتجاوز الفرق بينهما هذا المقدار، مثل ⁦0.01⁩. الحساب عشري دقيق لا بالفاصلة العائمة، والهامش ⁦0⁩ يجعل ⁦45.0⁩ و⁦45.00⁩ الرقم نفسه. ولا تُعدّ القيم أرقامًا إلا إذا كُتبت بنقطة عشرية ودون فاصل آلاف: تبقى ⁦1,000⁩ نصًا، بينما تُقرأ ⁦1e3⁩ على أنها 1000. ويجعل الهامش أيضًا ⁦007⁩ تساوي ⁦7⁩، لأن كلتيهما تُقرأ رقمًا. ولمقارنة النص بدقة يُترك الحقل فارغًا.
أعمدة تُتجاهلأعمدة تُستبعد من المقارنة كليًا، مثل ⁦updated_at⁩ أو طابع زمني للتصدير يتغير في كل مرة.

الأعمدة الموجودة في ملف واحد فقط تُذكر في الملخص ولا تُقارَن. أعِد تسميتها بأداة مطابقة أعمدة CSV إذا كانت العمود نفسه باسم جديد.

المفاتيح المكررة والفارغة

يُفترض أن يحدد المفتاح صفًا واحدًا. وإذا لم يكن كذلك فلا شيء يُخفى: يعدّ الملخص المفاتيح المكررة ويذكر أولها، وتُقرن الصفوف التي تشترك في مفتاح بترتيب ظهورها. فيُقارَن أول صف أصلي مفتاحه ⁦1⁩ بأول صف محدَّث مفتاحه ⁦1⁩، والثاني بالثاني، ويُبلَّغ عن أي صفوف زائدة في أي من الطرفين على أنها محذوفة أو مضافة.

قد يُظهر هذا الإقران تغييرًا هو في الحقيقة تبادل في ترتيب صفين لهما المفتاح نفسه. فإذا ذكر الملخص مفاتيح مكررة، أضِف عمودًا مفتاحيًا آخر إلى أن تصبح كل تركيبة فريدة. أما الصفوف التي كل أعمدتها المفتاحية فارغة فتُعدّ على حدة، لأنها تأتي عادةً من أسطر فارغة أو تصدير معطوب.

قراءة النتائج والتقرير

يذكر الملخص عدد الصفوف المضافة والمحذوفة والمعدّلة وغير المتغيرة، وإجمالي الخلايا المعدّلة. وتعرض القائمة الفروق بترتيب الملف الأصلي، تليها الصفوف الموجودة في الملف المحدَّث فقط. ويظهر لكل فرق المفتاح ورقم الصف في كل ملف، مع عدّ صفوف البيانات من 1 دون صف العناوين. تعرض الصفحة أول 500 فرق، ويضم التقرير كل الفروق.

change⁦added⁩ (مضاف) أو ⁦removed⁩ (محذوف) أو ⁦changed⁩ (معدّل).
الأعمدة المفتاحيةقيمة المفتاح. ومع تفعيل تجاهل حالة الأحرف أو المسافات يظهر المفتاح كما قورن، بأحرف صغيرة أو بعد إزالة المسافات. وعند المطابقة حسب الموضع يحمل عمود واحد اسمه ⁦row⁩ رقم الصف.
original_row، updated_rowرقما صف البيانات في كل ملف؛ ويكون فارغًا في الطرف الذي لا يوجد فيه الصف.
column، original_value، updated_valueسطر لكل خلية معدّلة. وتكون فارغة للصفوف المضافة والمحذوفة، التي يأخذ كل منها سطرًا واحدًا.

التقرير ملف CSV بترميز ⁦UTF-8⁩ يُسمّى باسم الملف المحدَّث، مثل ⁦feb-changes.csv⁩. ويمكن فتحه في عارض CSV لفرز التغييرات أو البحث فيها.

حل المشكلات

  • كل صف يظهر مضافًا ومحذوفًا. قيم المفتاح مكتوبة بطريقة مختلفة في الملفين، مثل ⁦00123⁩ مقابل ⁦123⁩ أو مسافة في الآخر. فعّل تجاهل المسافات، أو أصلِح العمود في تنظيف CSV. والأصفار في البداية تُحتسب دائمًا في المفاتيح، لأن المفاتيح تُقارَن كنص.
  • أرقام متساوية تظهر معدّلة. ⁦45.00⁩ و⁦45.0⁩ نصان مختلفان؛ أدخِل هامش تفاوت مثل ⁦0⁩ أو ⁦0.005⁩ لمقارنتهما كرقمين. أما الأرقام بفاصلة عشرية أو فواصل آلاف فتُقارَن دائمًا كنص.
  • عمود مفتاحي غير موجود في القائمة. لا يمكن أن يكون مفتاحًا إلا عمود موجود في الملفين، ويجب أن يتطابق الاسمان تمامًا. وراجع إعدادات الاستيراد إذا وصل صف العناوين كله في عمود واحد.
  • كل الصفوف بعد نقطة معينة معدّلة. المطابقة حسب الموضع، وقد أُدرج صف أو حُذف. انتقل إلى المطابقة حسب المفتاح.

الحدود والخصوصية

يمكن أن يصل كل ملف إلى 25 ميغابايت و100 ألف صف و250 عمودًا ومليوني خلية. والمقارنة لا تعمل تدفقيًا: يُحفظ الملفان في الذاكرة، وتتحدّث الفروق مع تغيير الخيارات.

يُقارَن الملفان في متصفحك ولا يُرسلان أبدًا إلى أي خادم. ولجمع النسختين بدلًا من ذلك استخدم دمج ملفات CSV؛ ولفحص ملف واحد وفق قواعد استخدم التحقق من CSV.

مثال

قائمتا منتجات مفتاحهما sku، قورنتا بالإعدادات الافتراضية الدقيقة. الصفوف بترتيب مختلف، ولا أثر لذلك. ومع تفعيل تجاهل حالة الأحرف والمسافات وهامش تفاوت ⁦0.001⁩ لا يبقى إلا تغيير stock في المنتج 00456.

CSV
jan.csv (original)
sku,name,price,stock
00123,Desk lamp,19.90,4
00456,Shelf,45.00,2
00789,Stool,12.00,9

feb.csv (updated)
sku,name,price,stock
00456,Shelf,45.0,0
00123,Desk Lamp ,19.90,4
01010,Bench,80.00,1
feb-changes.csv
change,sku,original_row,updated_row,column,original_value,updated_value
changed,00123,1,2,name,Desk lamp,"Desk Lamp "
changed,00456,2,1,price,45.00,45.0
changed,00456,2,1,stock,2,0
removed,00789,3,,,,
added,01010,,3,,,

أسئلة وأجوبة

هل يهم ترتيب الصفوف؟

ليس عند المطابقة حسب المفتاح: يُعثر على الصفوف بمفتاحها أينما كانت في كل ملف. ولا يهم الترتيب إلا عند المطابقة حسب موضع الصف.

أي الملفين يكون الأصلي؟

الأقدم. يُبلَّغ عن الصفوف الموجودة في الملف الثاني فقط بأنها مضافة، وعن الموجودة في الأول فقط بأنها محذوفة، فتبديل الملفين يبدّل هاتين القائمتين ويبدّل القيم قبل التغيير وبعده.

هل يمكن مقارنة أعمدة بأسماء مختلفة؟

لا تُقارَن إلا الأعمدة التي لها العنوان نفسه في الملفين، ويجب أن يستخدم الملفان الاسم نفسه لكل عمود مفتاحي. أعِد تسمية الأعمدة في أحد الملفين بأداة مطابقة أعمدة CSV أولًا.

المعايير والمراجع