طريقة الاستخدام
- ألصق بياناتك في نص CSV. أبقِ الأسماء في السطر الأول، واترك السطر الأول يحمل الأسماء محدداً.
- اترك الفاصل بين القيم على اكتشاف تلقائي، أو اختر الفاصلة المنقوطة (;) أو الجدولة (Tab) إذا كان الملف يستعملهما.
- أبقِ حوّل الأرقام وtrue وfalse وnull محدداً لتحصل على أرقام وقيم منطقية، أو ألغِ تحديده لتبقى كل القيم نصاً.
- اقرأ الصلاحية. فإن ذكرت سطراً فأصلح ذلك السطر، ثم انسخ مصفوفة JSON أو نزّلها باسم data.json.
كيف يُقرأ CSV
يصف RFC 4180 تنسيق CSV. كل سطر سجل، وحقول السجل مفصولة بحرف واحد، عادة الفاصلة. والحقل الذي يحمل الفاصل أو سطراً جديداً أو علامة تنصيص مزدوجة يُحاط بعلامتي تنصيص مزدوجتين، وتُكتب العلامة المزدوجة داخل هذا الحقل مرتين. وتتبع الأداة هذه القواعد، فلا تقسم الفاصلة داخل ”محمد, علي“ الاسمَ.
تُتخطى الأسطر الفارغة. وقد تنتهي الأسطر بالرمز CRLF أو LF. وتُتجاهل علامة ترتيب البايتات (BOM) في بداية الملف، التي يكتبها Excel في بعض الملفات.
- يجب أن يكون لكل سطر عدد الحقول نفسه الذي في السطر الأول. فالسطر المختلف يوقف التحويل ويُذكر، فلا تضيع قيمة ولا تنتقل إلى عمود خاطئ.
- من دون أن يكون السطر الأول أسماء، تُسمّى الأعمدة column1 وcolumn2 وهكذا. والاسم الفارغ يصبح column مع رقمه، والاسم المكرر يأخذ _2 و_3 في آخره.
- يُحوَّل الرقم فقط إذا بقيت كل أرقامه بعد التحويل، فيبقى 12345678901234567890 نصاً. ويبقى 007 نصاً لأن الصفر في البداية ليس جزءاً من رقم JSON.
الفواصل والفواصل العشرية
يفحص الاكتشاف التلقائي أول الأسطر، ويختار الفاصل الذي يعطي عدد الحقول نفسه في أغلب الأسطر. وعند التساوي يُختار الفاصلة، ثم الفاصلة المنقوطة. وحين يكون الملف غير معتاد، اختر الفاصل بنفسك.
النقطة وحدها هي الفاصلة العشرية في رقم JSON. وفي ملف بالفاصلة المنقوطة حفظه Excel بإعداد يستعمل الفاصلة العشرية، تبقى قيمة مثل 1,5 نصاً، فلا تتحول إلى 15 أو إلى رقم خاطئ. استبدل الفاصلة بنقطة أولاً إذا احتجت إلى رقم.
مثال محلول: CSV الافتراضي
النص الافتراضي فيه سطر أسماء وصفّان. الصف الأول بلا علامات تنصيص. والصف الثاني فيه اسم بفاصلة، لذلك وُضع بين علامتي تنصيص. وكلا الرمزين يبدآن بالصفر، فيبقيان نصاً.
يصبح عمود الدرجة أرقاماً، 92 و85، ويبقى عمود الرمز 007 و010 نصاً. والناتج كائنان، لذلك عدد الصفوف 2.
| الحقل | الصف الأول | الصف الثاني |
|---|---|---|
| الاسم | أحمد | محمد, علي |
| الدرجة | 92 | 85 |
| الرمز | 007 | 010 |
الأسئلة الشائعة
لماذا يعطيني المحوّل خطأ عن سطر؟
يذكر الخطأ السطر الذي يبدأ عنده المشكلة. ومن أسبابه الشائعة حقل مقتبس لا يُغلق، أو فاصلة داخل قيمة ليست بين علامتي تنصيص، أو صف فيه حقول أكثر من السطر الأول أو أقل منه.
لماذا يبقى الرقم نصاً؟
تبقى القيمة نصاً إذا بدأت بصفر، مثل 007، أو إذا كان لها أكثر من 15 رقماً مهماً، أو إذا استعملت الفاصلة عشرية، مثل 1,5. وتُحفظ تلك القيم كما كُتبت تماماً.
لماذا يظهر 19.90 بالشكل 19.9؟
لا يحمل رقم JSON أصفاراً في آخره، فيُكتب 19.90 بالشكل 19.9. وهو العدد نفسه. فإذا احتجت الرقمين، فألغِ تحديد حوّل الأرقام وtrue وfalse وnull.
هل يتعامل المحوّل مع ملف حفظه Excel؟
نعم. تبدأ بعض صادرات Excel بعلامة ترتيب البايتات، ويستعمل Excel في بعض الإعدادات الفاصلة المنقوطة فاصلاً، ومنها كثير من الإعدادات الأوروبية. وتُتجاهل العلامة ويُكتشف الفاصل تلقائياً.
ماذا لو لم يكن في CSV سطر أسماء؟
ألغِ تحديد السطر الأول يحمل الأسماء. عندها تُسمى الأعمدة column1 وcolumn2 وهكذا، ويصبح كل سطر كائناً بهذه الأسماء.
هل يُرفع ملف CSV الخاص بي إلى مكان ما؟
لا. يعمل التحويل داخل متصفحك، ولا يُرسل ما تلصقه إلى خادمنا.
المصادر
- RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files (باللغة الإنجليزية)
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format (باللغة الإنجليزية)
آخر مراجعة للأرقام والنص: الثلاثاء، 30 جمادى الأولى 1448 بعد الهجرة.