تصدّر قائمة رموز بريدية، وتفتحها لتتحقّق، فإذا 07430 صارت 7430. كل قيمة في العمود أنقص بمحرف. التصدير بدا سليمًا حين صنعته.
لماذا تختفي الأصفار في مقدّمة CSV
قُرئت أعدادًا، والأعداد لا أصفار في مقدّمتها
CSV لا يخزّن أنواعًا — كل حقل نصّ، والبرنامج الذي يفتحه يخمّن. سلسلة من الأرقام تبدو كمّيةً، فتُحمَّل 07430 العدد 7430 ولا يبقى للصفر مكان يعيش فيه. الملف على القرص لم يتغيّر. افتحه في محرّر نصوص تجد الأصفار كلّها ما زالت هناك.
أين يقع التخمين
لا شيء في CSV يقول ما في العمود. لا صفّ عناوين يعلن هذا نصّ، ولا مخطّط، ولا أنواع إطلاقًا — وهذا هو مقصد الصيغة ومصدر معظم متاعبها. كل قارئ يريد وضع القيم في أعمدة عليه أن يقرّر ما هي، والدليل الوحيد هو شكلها.
حقل من أرقام يبدو عددًا. ذلك التخمين صحيح في كل الأحوال تقريبًا: الكمّيات والأسعار والأعداد والأعمار تصل كلّها أرقامًا وتريد كلّها أن تكون أعدادًا. لكنه خطأ لصنف القيم التي تكون أرقامًا دون أن تكون كمّيات — الرموز البريدية وأرقام القطع ورموز الاتصال ومراجع الحسابات وكل ذي عرض ثابت — وفي تلك يتلف التخمين الأصفار في المقدّمة أثرًا جانبيًّا لمحاولته المساعدة.
اللحظة التي يصير فيها الضرر حقيقيًّا
فتح الملف لا يغيّره. الأصفار على القرص طوال الوقت؛ ما تنظر إليه تفسير. أغلق الجدول دون حفظ ولم يحدث شيء إطلاقًا.
الحفظ يكتب التفسير في الملف. عندها يحلّ العدد 7430 محلّ النص 07430 في الملف نفسه، ويذهب الأصل. فأول تصرّف عند ملاحظة المشكلة ليس إصلاح العرض — بل التوقّف والإغلاق دون حفظ والعودة عبر استيراد لا يخمّن.
الاستيراد الذي لا يخمّن
في Excel يخمّن طريق النقر المزدوج دائمًا. الطريق الذي لا يخمّن هو البيانات ← من نص/CSV، وهو يعرض معاينة ويتيح لك ضبط نوع العمود على نص قبل تحميل أي شيء. اضبطه هناك تنجُ الأصفار، لأنك أجبت عن السؤال بدل أن تتركه مفتوحًا.
تغيير تنسيق الخلية بعدها لا يفعل شيئًا. التنسيق يقرّر كيف تُعرض القيمة المخزّنة، والقيمة المخزّنة عندها 7430 — لا صفر ليُعرض. هذه أكثر ساعة ضائعة شيوعًا في هذه المشكلة كلّها.
الحيل، وثمن كل واحدة
الفاصلة العليا في المقدّمة تخبر Excel أن يعامل الخلية نصًّا. تُكتب أيضًا داخل الخلية، فيحملها التصدير التالي ويقرؤها كل برنامج آخر جزءًا من القيمة. تصلح جدولًا وتكسر ملفًّا.
التغليف بصيغة ="07430" أفضل داخل Excel — إذ تُقيَّم إلى نصّ — وأسوأ في كل مكان آخر، لأن كل ما ليس Excel يقرأ علامة يساوي وعلامتَي الاقتباس محارفَ حرفية. معقولة حين يكون Excel قطعًا القارئ الوحيد، وفخّ في اللحظة التي يُمرَّر فيها الملف.
اقتباس الحقل في CSV نفسه — "07430" — يبدو أنه يجب أن ينفع ولا ينفع. علامات الاقتباس تخبر القارئ أين ينتهي الحقل، لا ما نوعه؛ فهي ترقيم لا بيانات، والجدول ينزعها ثم يخمّن كما فعل تمامًا.
التخمين نفسه، ضحايا أخرى
متى رأيت الآلية صارت الأعراض الأخرى هي هي. حقل مثل 3-4 يصير تاريخًا، لأنه يبدو كذلك. رقم حساب طويل يصير 1.23457E+14، لأن العدد بهذا الكبر ينال ترميزًا علميًّا. قيمة NA تصير شيئًا يظنّه الجدول مفقودًا.
لعلم الوراثة البشرية أفضل ضحية موثّقة: رموز جينات مثل SEPT2 تحوّلت إلى 2-Sep في مجموعات بيانات منشورة كثيرة حتى أعادت لجنة التسمية في النهاية تسمية الجينات. هكذا يصعب إطفاء هذا التخمين.
استرجاع ما ذهب
الحشو لا ينفع إلا حيث يكون العرض قاعدة. عمود رمز بريدي من خمسة أرقام دائمًا يمكن استرجاعه بثقة. رقم قطعة مجهول الطول لا يمكن — 42 ربما كانت 042 أو 0042، ولا شيء في الملف يفرّق بينهما.
إن كان التصدير الأصلي ما زال عندك، فعد إليه واستورد من جديد كما ينبغي. منظّف CSV يقرأ الملف نصًّا دون أن يقرّر شيئًا عن الأنواع، فيريك ما هو مخزّن فعلًا — وهو عادةً ما يكفي لتحديد هل ضاعت الأصفار يومًا أم أنها كانت مخفيّة وحسب.
النسخة القصيرة
CSV بلا أنواع، فلا بدّ لشيء أن يخمّن، والأرقام تبدو أعدادًا. لا تنقر نقرًا مزدوجًا؛ استورد واضبط العمود على نص. إن كنت قد فتحته فعلًا، فأغلق دون حفظ — الملف على الأرجح ما زال سليمًا.