data · 6 دقائق قراءة

لماذا تختفي الأصفار من مقدّمة CSV عندك

الأصفار ما زالت في الملف. شيءٌ بين القرص وشاشتك قرّر أن تلك الأرقام كمّية، والكمّيات لا أصفار في مقدّمتها.

تصدّر قائمة رموز بريدية، وتفتحها لتتحقّق، فإذا 07430 صارت 7430. كل قيمة في العمود أنقص بمحرف. التصدير بدا سليمًا حين صنعته.

لماذا تختفي الأصفار في مقدّمة CSV

قُرئت أعدادًا، والأعداد لا أصفار في مقدّمتها

CSV لا يخزّن أنواعًا — كل حقل نصّ، والبرنامج الذي يفتحه يخمّن. سلسلة من الأرقام تبدو كمّيةً، فتُحمَّل 07430 العدد 7430 ولا يبقى للصفر مكان يعيش فيه. الملف على القرص لم يتغيّر. افتحه في محرّر نصوص تجد الأصفار كلّها ما زالت هناك.

في الملفبعد أن يخمّن القارئ07430رمز بريدي أمريكي7430قُرئت عددًا00961رمز اتصال961قُرئت عددًا0042رقم قطعة42قُرئت عددًا1E9مرجع، لا أُسّ1000000000قُرئت عددًاSKU-0042فيه حرفSKU-0042تبقى نصًّا — لا تصلح عددًا00.50رقم إصدار0.5قُرئت عددًا
العمود الأيمن هو كل قيمة ممرّرة عبر تحليل الأعداد في الصفحة نفسها أثناء عرضها — وهو السؤال ذاته الذي يطرحه الجدول: هل يبدو الحقل كمّية؟ خمس من ست تتغيّر. لم يتغيّر معها شيء في الملف: الأرقام ما زالت على القرص، وما تنظر إليه تخمين عمّا كانت تعنيه.

أين يقع التخمين

لا شيء في 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 بلا أنواع، فلا بدّ لشيء أن يخمّن، والأرقام تبدو أعدادًا. لا تنقر نقرًا مزدوجًا؛ استورد واضبط العمود على نص. إن كنت قد فتحته فعلًا، فأغلق دون حفظ — الملف على الأرجح ما زال سليمًا.

أسئلة

لماذا تختفي الأصفار في مقدّمة CSV؟

لأن CSV لا يخزّن أنواعًا. كل حقل نصّ، والبرنامج الذي يفتح الملف يخمّن ما عناه كل حقل. حقل من أرقام يبدو كمّيةً، فيُقرأ العدد 7430 بدل النص 07430 — والعدد لا أصفار في مقدّمته يبقيها. الملف على القرص ما زال يحمل الأصفار. ما تنظر إليه هو التخمين لا البيانات.

هل تلف ملفي؟

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

كيف أمنع Excel من حذفها؟

لا تنقر الملف نقرًا مزدوجًا. استعمل البيانات ← من نص/CSV، واضبط في معاينة الاستيراد نوع العمود المعني على نص قبل التحميل. هذا هو الطريق الوحيد الذي يعطي Excel الجواب بدل أن يدعه يخمّن. تغيير تنسيق الخلية بعد ذلك لا ينفع — الأصفار طُرحت أثناء الاستيراد، والتنسيق لا يعيد ما لم يُحمَّل أصلًا.

هل تصلحها الفاصلة العليا؟

تصلح العرض في Excel وتكسر الملف لكل ما عداه. الفاصلة العليا في المقدّمة عرف من Excel معناه «عامل هذا نصًّا»، وهي تُخزَّن في الخلية — فالتصدير إلى CSV مرّة أخرى يعيدها إليك محرفًا في مقدّمة القيمة، وأي برنامج آخر يقرؤها جزءًا من البيانات. حلّ التفاف لجدول، لا إصلاح لملف.

ماذا عن ="07430" في ملف CSV؟

تعمل في Excel وهي أقلّ الحيل سوءًا، لأن الصيغة تُقيَّم إلى قيمة نصّية. لكنها خاصّة بExcel: استيراد قاعدة بيانات أو سكربت أو جدول آخر يقرأ المحارف الحرفية ="07430" بما فيها علامة يساوي وعلامتا الاقتباس. استعملها حين تعلم أن Excel هو الوحيد الذي سيفتح الملف يومًا.

لماذا صار رقم القطعة تاريخًا؟

التخمين نفسه بنتيجة مختلفة. حقل مثل 3-4 أو 12/07 يبدو تاريخًا للجدول، فيصير تاريخًا — ومتى صار تاريخًا خُزّن رقمًا تسلسليًّا وعُرض بتنسيق، فذهبت المحارف الأصلية. أسماء الجينات هي الضحية المشهورة: صار SEPT2 هو 2-Sep بانتظام حتى أعاد المجال تسمية جيناته بدل مواصلة المعركة.

هل أستطيع استرجاع أصفار ذهبت؟

فقط إن كنت تعرف الطول الذي يجب أن تكون عليه القيمة. عمود رمز بريدي يجب أن يكون خمسة أرقام يمكن حشوه من 7430 إلى 07430 بثقة. رقم قطعة مجهول الطول لا يمكن — 42 ربما كانت 042 أو 0042 ولا شيء في الملف يقول أيّهما. استرجع من التصدير الأصلي إن كان ما زال عندك، واحشُ حيث يكون العرض قاعدة لا تخمينًا.

هل يُرفع الملف لفحصه؟

لا. أدوات CSV هنا تقرأ الملف في متصفّحك ولا يغادر جهازك. الملفات التي فيها هذه المشكلة عادةً قوائم عملاء أو تصديرات رواتب أو بيانات طلبات — وهي التي تستحقّ الحذر.

أدوات من هذا الدليل

المزيد من أدوات البيانات — كلّها تعمل في متصفّحك، ولا واحدة منها ترفع ملفًّا.