كيف يمكنني إنشاء اختلاف قابل للقراءة لجدول بيانات باستخدام git diff؟


Answers

سريع وسهل بدون أدوات خارجية ، يعمل بشكل جيد طالما أن الصفحتين اللتين تقارنهما متشابهتان:

  • قم بإنشاء جدول بيانات ثالث
  • Type =if(Sheet1!A1 <> Sheet2!A1, "X", "") في الخلية العلوية اليمنى (أو ما يعادلها: انقر على الخلايا الفعلية لإدراج المراجع في الصيغة تلقائيًا)
  • Ctrl + C (نسخ) ، Ctrl + A (حدد الكل) ، Ctrl + V (paste) لملء الورقة.

إذا كانت الأوراق متشابهة ، فسيكون جدول البيانات هذا فارغًا باستثناء بعض الخلايا التي تحتوي على X بها ، مع تمييز الاختلافات. تجاوز 40 ٪ لترى ما هو مختلف.

Question

لدينا الكثير من جداول البيانات (xls) في مستودع شفرة المصدر لدينا. عادة ما يتم تحرير هذه مع gnumeric أو openoffice.org ، وتستخدم في الغالب لنشر قواعد البيانات لاختبار الوحدة مع dbUnit . لا توجد طرق سهلة لفعل الاختلافات على ملفات XLS التي أعرفها ، وهذا يجعل دمج مملة للغاية وعرضة للخطأ.

لقد حاولت تحويل جداول البيانات إلى xml وقمت بإجراء فرق منتظم ، لكنها تشعر أنه يجب أن يكون الملاذ الأخير.

أرغب في إجراء عملية (ودمج) مع git كما أفعل مع الملفات النصية. كيف أفعل هذا ، على سبيل المثال عند إصدار git diff ؟




تأتي الإصدارات الأحدث من MS Office مع مقارنة جداول البيانات ، والتي تؤدي فرقًا جيدًا إلى حد ما في واجهة المستخدم الرسومية. يكشف معظم أنواع التغييرات.




لا أعرف أي أدوات ، ولكن هناك حلان للتداول الخاص بك يتبادر إلى ذهنك ، كلاهما يتطلب Excel:

  1. يمكنك كتابة بعض التعليمات البرمجية لـ VBA التي الخطوات من خلال كل ورقة عمل و صف و عمود و خلية من المصنفات اثنين ، تقرير الاختلافات.

  2. إذا كنت تستخدم Excel 2007 ، فيمكنك حفظ المصنفات بتنسيق Open-XML (* .xlsx) ، واستخراج XML وإلغاء ذلك. إن ملف Open-XML هو في الأساس مجرد ملف zip. من ملفات .xml ومجلدات.

سينتهي الأمر بكثير من "الضجيج" في كلتا الحالتين إذا لم تكن جداول البيانات لديك "قريبة" من الناحية الهيكلية للبدء بها.




يمكنك تجربة هذه الأداة المجانية عبر الإنترنت - www.cloudyexcel.com/compare-excel/

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

بالإضافة إلى أنك لا تملك لتثبيت أي شيء.




إذا كنت تستخدم جافا ، فيمكنك تجربة simple-excel .

انها سوف تنشر جداول البيانات باستخدام المتطابقة Hamcrest وإخراج شيء من هذا القبيل.

java.lang.AssertionError:
Expected: entire workbook to be equal
     but: cell at "C14" contained <"bananas"> expected <nothing>,
          cell at "C15" contained <"1,850,000 EUR"> expected <"1,850,000.00 EUR">,
          cell at "D16" contained <nothing> expected <"Tue Sep 04 06:30:00">
    at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)

يجب أن أكون مؤهلاً بأننا كتبنا تلك الأداة (مثل الإجابة المتوقفة تدحرجت الخاصة بهم).




أعلم أن العديد من الردود قد اقترحت تصدير الملف إلى csv أو تنسيق آخر للنص ، ومن ثم مقارنته. لم أر ذلك على وجه التحديد ، لكن Beyond Compare 3 يحتوي على عدد من تنسيقات الملفات الإضافية التي يدعمها. انظر تنسيقات ملف إضافية . باستخدام أحد تنسيقات ملفات Microsoft Excel ، يمكنك بسهولة مقارنة ملفين Excel دون المرور عبر التصدير إلى خيار تنسيق آخر.




لقد وجدت ماكرو openoffice here التي ستستدعي وظيفة مقارنة openoffice في ملفين. لسوء الحظ ، يبدو مقارنة جدول بيانات Openoffice قليلاً غير مستقر ؛ أنا فقط كان الزر "رفض الكل" إدراج عمود زائدة في المستند.




حصلت على المشكلة مثلك لذا قررت أن أكتب أداة صغيرة لمساعدتي. يرجى التحقق من ExcelDiff_Tools . يأتي مع عدة نقاط رئيسية:

  • دعم xls و xlsx و xlsm.
  • مع خلية الصيغة. سوف يقارن كل من الصيغة والقيمة.
  • أحاول جعل واجهة المستخدم تبدو وكأنها عارض النص القياسي مع: تعديل ، حذف ، إضافة ، حالة دون تغيير. يرجى إلقاء نظرة على الصورة أدناه على سبيل المثال:



هممم. من قائمة Excel اختر Window -> قارن جنباً إلى جنب؟