تحويل CSV إلى Excel والعكس دون أن تتلف بياناتك
ملف CSV يدخل Excel ثم يخرج منه قد ينتهي مختلفًا اختلافًا طفيفًا عن الملف الذي بدأت به، بطرق يسهل ألا تلاحظها.
بقلم PulsarKit · ·
مشكلة الفاصل تبدأ قبل أن يُفتح الملف
يقرر Excel كيف يقسّم ملف CSV إلى أعمدة بحسب فاصل القوائم المضبوط في الإعدادات الإقليمية لنظام التشغيل، لا بالنظر إلى الملف نفسه. على جهاز مضبوط على منطقة أوروبية، يكون هذا الفاصل افتراضيًا فاصلة منقوطة، فيقع ملف عادي مفصول بالفواصل في عمود واحد من نص غير مقسّم. وعلى جهاز مضبوط على إعدادات الولايات المتحدة، يحدث العكس مع ملف مفصول بالفواصل المنقوطة. لا تعني أي من النتيجتين أن الملف تالف. بل تعني أن Excel خمّن من إعدادات لا علاقة لها بطريقة كتابة الملف. أما المحوّل مثل CSV إلى Excel، الذي يحلّل الملف بعدة فواصل مرشحة ويتحقق أيها يعطي عددًا ثابتًا من الحقول في الأسطر المأخوذة عينةً، فيتجاوز التخمين كليًا، بدل أن يثق بامتداد الملف أو بإعداد النظام.
الأصفار البادئة والأرقام الطويلة تضيع بصمت
أكثر ما يضر في تحويل CSV إلى Excel هو الاندفاع إلى تحويل النص إلى أرقام. رمز منتج مكتوب 00123 يصبح الرقم 123 في اللحظة التي يقرر فيها جدول البيانات أنه يبدو رقمًا، ولا يمكن استعادة الصفر البادئ بعد ذلك. لقد ضاع نهائيًا. أما المعرّفات الأطول فتفشل بطريقة أخرى. رقم بطاقة أو رمز شريطي من ستة عشر رقمًا يفقد آخر أرقامه دون أي تحذير، لأن الأرقام العادية في جداول البيانات لا تستطيع أن تحمل أكثر من نحو خمسة عشر رقمًا معنويًا دون تقريب. يجب أن يبقى كلاهما نصًا بدل أن يُحوَّل، والقاعدة نفسها تنطبق حين تكون الوجهة برنامجًا لا Excel: أداة CSV إلى JSON تُبقيهما سلاسل نصية. أما القيم التي هي أرقام فعلًا، مثل الكميات والأسعار والمجاميع، فيجب أن تُحوَّل كالمعتاد حتى يمكن جمعها وإجراء الحسابات عليها.
الترميز هو الموضع الذي تتلف فيه البيانات غير الإنجليزية
الملفات المصدَّرة من أنظمة محاسبة أو قواعد بيانات قديمة كثيرًا ما لا تكون بترميز UTF-8 أصلًا. والحالتان الشائعتان هما Windows-1251 للنص السيريلي وWindows-1252 للحروف ذات العلامات في لغات أوروبا الغربية، وفتح أحدهما بافتراض خاطئ ينتج الجدار المألوف من الرموز المشوهة. تحديد الترميز الحقيقي يكتشف هذه المشكلة تلقائيًا: يُبحث أولًا عن علامة ترتيب البايتات (BOM)، ثم يُتحقق من UTF-8 تحققًا صارمًا، وإن فشل ذلك يُختار ترميز بديل بحسب توزيع البايتات العالية. ولا يضطر أحد إلى التخمين في قائمة من خيارات الترميز.
علامة ترتيب البايتات نفسها قد تسبب ضررًا خفيًا
علامة ترتيب البايتات في UTF-8 هي ثلاثة بايتات غير مرئية في أول الملف تمامًا، تخبر Excel بأن النص الذي يليها بترميز Unicode. هذا مفيد حين يكون Excel هو الوجهة. ويصبح مشكلة في اللحظة التي تكون فيها وجهة الملف شيئًا آخر غير Excel. فأداة سطر الأوامر أو سلسلة معالجة البيانات القديمة التي لا تحذف تلك البايتات تنتهي بها ملتصقة بأول حرف في أول خلية من صف العناوين، فالعمود الذي يُفترض أن اسمه «id» لم يعد يطابق أي شيء ينتظر هذا الاسم بالضبط. إبقاء BOM أو حذفها يتوقف كليًا على ما سيقرأ الملف بعد ذلك، لا على إعداد افتراضي واحد يصلح للجميع.
الاتجاه المعاكس له قراراته الخاصة
تحويل جدول البيانات مرة أخرى إلى CSV بأداة Excel إلى CSV يطرح سؤالًا لا يطرحه الاتجاه الآخر أبدًا. فالخلية التي تحمل معادلة لها قيمتان: نص المعادلة نفسه والرقم الذي نتج عنها في آخر حساب، وملف CSV لا يحمل إلا واحدة منهما في كل مرة. تصدير القيمة المحسوبة هو ما تتوقع معظم الأنظمة استيراده. أما تصدير نص المعادلة فهو ما يريد المراجع البشري قراءته. والتواريخ تستحق العناية الصريحة نفسها. كتابتها بصيغة واحدة ثابتة تختارها، بدل الثقة بما صادف أن عرضه جدول البيانات، تمنع الملف نفسه من إنتاج تواريخ بأشكال مختلفة بحسب الإعدادات الإقليمية للجهاز الذي تولّى التنسيق.
أخطاء شائعة، والإعداد الذي يمنع كل واحد منها
ترك الفاصل العشري على النقطة. ملف مصدَّر مفصول بالفواصل المنقوطة من بلد يكتب الواحد والنصف 1,50 يحتاج إلى ضبط «الفاصل العشري» على «فاصلة» في CSV إلى Excel، وإلا بقي كل سعر نصًا يرفض أن يُجمع. الثقة بالتحديد التلقائي للأنواع مع المعرّفات. فهو يحمي الأصفار البادئة وكل ما يزيد على خمسة عشر رقمًا، لكن رقم الطلب أو الرمز البريدي الذي لا يبدأ بصفر يصبح رقمًا مع ذلك؛ وحين لا يحتاج أي عمود إلى عمليات حسابية، فإن ضبط «أنواع الخلايا» على «الكل نص» يُبقي كل قيمة كما كُتبت تمامًا. دفع ملف مصدَّر من بضعة ملايين من الصفوف إلى مصنف واحد. يتوقف XLSX عند 1,048,576 صفًا، لذا يُرفض ملف CSV الأطول مع رابط إلى تقسيم CSV بدل أن يُقتطع دون كلمة واحدة.
وفي طريق العودة، قارن ثلاثة إعدادات افتراضية في Excel إلى CSV بما سيقرأ الملف بعد ذلك. «ترميز النتيجة» هو UTF-8 مع BOM، وهو الشكل الذي يحتاجه Excel؛ أما البرنامج النصي أو أداة استيراد قاعدة البيانات فتريد عادةً UTF-8 العادي. «صيغة التاريخ» هي ISO 8601، فيصبح 14 مارس 2026 هو 2026-03-14 على كل جهاز، والبدائل هي 14.03.2026 و03/14/2026 و«الرقم التسلسلي في Excel». «نهايات الأسطر» هي CRLF لنظام Windows، مع LF بديلًا لأدوات Unix. وهناك إعداد رابع يسهل أن يفوتك: لا تُصدَّر افتراضيًا إلا الورقة الأولى، فالمصنف الذي فيه علامة تبويب ثانية يحتاج إلى «كل الأوراق»، فتحصل على أرشيف ZIP فيه ملف CSV لكل ورقة.
الأدوات المستخدمة في هذه المقالة
اقرأ أيضًا
- تنظيف ملف CSV من مشكلات ترميز Windows-1251 وعلامة BOM قبل استيرادهملف CSV مُصدَّر يبدو عاديًا تمامًا حين تفتحه في جدول بيانات، ومع ذلك قد يفسد استيراد JSON بسبب حرف غير مرئي أو ترميز خاطئ.
- كيف تنقل كتابًا إلكترونيًا إلى جهاز Kindle قديم لا يقرأ ePubصيغة ePub هي معيار الكتب الإلكترونية في كل مكان تقريبًا، إلا على جهاز Kindle نفسه، الذي لم يقرأها يومًا قراءة مباشرة.
- WebP أم AVIF أم JPEG: قياس على صورة هاتف واحدةمررنا صورة هاتف واحدة بدقة 12 ميغابكسل ولقطة شاشة وشعارًا شفافًا عبر JPEG وWebP وAVIF في المتصفح. وإليك أحجام الملفات بجودة متكافئة، وأزمنة الترميز، والآثار التي تتركها كل صيغة.