قد يحتوي ملف CSV على 00123 بشكل صحيح، بينما يعرض برنامج الجداول 123 بعد فتحه. يخزّن الملف حقولًا نصية، والتطبيق المستورد هو من يقرر كيف يفسّرها. احتفظ بالمعرّفات كنص عند الاستيراد، وافحص الناتج المحفوظ قبل استبدال الملف الأصلي.
المعرّف ليس بالضرورة رقمًا
استخدم العمليات الحسابية للكميات مثل العدد أو السعر. أما الرمز البريدي أو مفتاح الفهرس أو معرّف الحساب فتعامل معه بحسب معناه: قد تكون أرقامه تسميات وليست كمية تُجمع. ويمكن أن يتضرر كل من الأصفار البادئة والسلاسل الرقمية الطويلة والرموز الشبيهة بالتواريخ بسبب تحويل غير مرغوب.
يشرح إرشاد Microsoft حول الأصفار البادئة والأرقام الكبيرة كيفية استيراد الأعمدة المناسبة كنص. كما يوثّق عناصر التحكم في التحويل التلقائي في إصدارات Excel المدعومة. تحقق من إصدارك الفعلي، فليست الإعدادات نفسها متاحة في كل إصدار.
مثال CSV أصلي وخيالي
هذه سجلات مخترعة للتعلّم، وليست بيانات حسابات أو عملاء حقيقية. نزّل ملف CSV التجريبي.
item_id,reference,label,quantity
00123,12345678901234567890,JAN1,7
00007,98765432109876543210,1E10,12
| العمود | المعنى المقصود | نوع الاستيراد |
|---|---|---|
| item_id | معرّف من خمسة أحرف | نص؛ احتفظ بـ 00123 و00007 |
| reference | سلسلة مرجعية طويلة | نص؛ احتفظ بكل رقم |
| label | رمز وليس تاريخًا أو أسًّا | نص؛ احتفظ بـ JAN1 و1E10 حرفيًا |
| quantity | عدد | عدد صحيح، بعد التحقق |
لا يحمل CSV جدول أنواع الأعمدة هذا كمخطط تفرضه جميع التطبيقات. وقد يمنع تضمينه في تعليمات التسليم تطبيقًا آخر من التخمين بشكل مختلف.
استورد بقصد في Excel
- احتفظ بنسخة غير معدلة من ملف CSV الأصلي.
- استخدم مسار استيراد النص/CSV في التطبيق بدل الاعتماد على التخمين التلقائي عند النقر المزدوج.
- افحص المعاينة واضبط الأعمدة الشبيهة بالمعرّفات على نص قبل تطبيق التحويل. وفي مسار الاستعلام، افحص أي خطوة تغيّر النوع تلقائيًا أو استبدلها عند الحاجة.
- تحقق من الفاصل والترميز ومعاملة القيم الشبيهة بالتواريخ.
- حمّل البيانات وقارن المعرّفات الدقيقة بالمصدر.
- بعد التصدير، افحص ملف CSV الناتج في محرر نصوص، واستورده مرة أخرى بأنواع الأعمدة المقصودة.
تصف تعليمات Microsoft لاستيراد ملفات النص وتصديرها الفرق بين الفتح والاستيراد. وتختلف تسميات القوائم باختلاف المنصة والإصدار. يمكن لتنسيق عرض مخصص مثل خمسة أصفار أن يُظهر 123 على هيئة 00123، لكن ذلك لا يعادل الحفاظ على المعرّف النصي الأصلي ولا استعادة أرقام فُقدت بالفعل.
افحص السلاسل النصية باستخدام Python
تصف وثائق Python الخاصة بوحدة csv قراءة الحقول كسلاسل نصية افتراضيًا، مع استثناءات محددة لخيارات التحويل. يستخدم هذا الفحص الصغير المكتبة القياسية فقط:
import csv
with open("identifier-example.csv", newline="", encoding="utf-8") as f:
rows = list(csv.DictReader(f))
assert rows[0]["item_id"] == "00123"
assert rows[0]["reference"] == "12345678901234567890"
assert rows[1]["label"] == "1E10"
quantities = [int(row["quantity"]) for row in rows]
assert sum(quantities) == 19
تحوّل هذه الفحوص عمدًا عمود الكمية فقط. وهي تُظهر محتويات الملف التجريبي، ولا تضمن شيئًا بشأن أي تصدير أو تطبيق جداول آخر.
ما لا يمكن استرجاعه تلقائيًا
إذا جرى تقريب معرّف طويل وحُفظ فوق الملف الأصلي، فلن يعيد تغيير تنسيق الخلية إلى نص الأرقام المفقودة. استعد الملف من مصدر لم يتغير. وإذا كان 123 قد يعني 00123 أو 123، فإن إضافة الأصفار قرار تحكمه قاعدة عمل، وليست دليلًا على القيمة الأصلية.
وضع الحقل بين علامات اقتباس في CSV هو صياغة للحفاظ على الفواصل وغيرها من المحارف، ولا يُجبر برنامج الجداول دائمًا على اعتبار الحقل نصًا. يذكر التسليم الجيد الترميز والفاصل وأنواع الأعمدة المقصودة وقواعد التحقق. ولمشكلة متصلة بمشاركة المستندات، راجع توفر خطوط Word وقابليتها للنقل.
