منسّق CSV

تنسيق وتطبيع بيانات CSV باستخدام خيارات فاصل مخصصة

جرب مثالاً

إدخال CSV

CSV منسّق

يعمل محليًا · آمن للصق الأسرار
سيظهر CSV المنسّق هنا…
فاصل الإخراج:

ما هو تنسيق CSV؟

تنسيق CSV (القيم المفصولة بفواصل) هو عملية تطبيع النص الجدولي الخام بحيث تتبع الفواصل والاقتباسات والمسافات ونهايات الأسطر مجموعة متسقة من القواعد. يحدد RFC 4180، الصادر عام 2005، أكثر معايير CSV انتشاراً: حقول مفصولة بفواصل، وسجلات تنتهي بـCRLF، وأي حقل يحتوي على فاصلة أو علامة اقتباس مزدوجة أو سطر جديد يُحاط بعلامات اقتباس مزدوجة. يأخذ منسّق CSV البيانات غير المنتظمة ويعيد كتابتها لتتوافق مع هذه الاتفاقيات.

نادراً ما تصل ملفات CSV الواقعية بشكل نظيف. تُطبّق كل من Excel وGoogle Sheets وأدوات تفريغ قواعد البيانات استراتيجيات اقتباس مختلفة، وتتعامل مع المسافات بطرق متباينة، وقد تستخدم الفاصلة المنقوطة أو التبويب بدلاً من الفاصلة. عندما تُغذّي هذه الملفات في محلل يتوقع إدخالاً صارماً وفق RFC 4180، تكون النتيجة في الغالب صفوفاً معطوبة أو أعمدة منزاحة أو فقداناً صامتاً للبيانات. التنسيق قبل المعالجة يكشف هذه المشاكل مبكراً.

يختلف منسّق CSV عن محوّل CSV. التنسيق يُبقي البيانات بصيغة CSV؛ إذ يطبّع الاقتباسات، ويحذف المسافات الزائدة، ويعيد محاذاة الأعمدة، ويُغيّر الفاصل اختيارياً. أما التحويل فيُغيّر الصيغة كلياً، منتجاً مخرجات بصيغة JSON أو HTML أو SQL أو Markdown.

لماذا تستخدم منسّق CSV هذا؟

تُحلّل هذه الأداة بيانات CSV وتُعيد تسلسلها بالكامل في المتصفح. بياناتك لا تغادر جهازك أبداً.

تنسيق فوري
الصق بيانات CSV وشاهد المخرجات المنظّفة فوراً. يُحلّل المنسّق البيانات ويُعيد تسلسلها في المتصفح أثناء الكتابة.
🔒
معالجة تحافظ على الخصوصية
يتم كل تحليل وتنسيق في تبويب المتصفح لديك. لا تُرسل أي بيانات عبر الشبكة. آمن للمجموعات البيانات الخاصة وبيانات الاعتماد والمعلومات الشخصية التي لا ينبغي أن تغادر جهازك.
🔧
فواصل قابلة للضبط
بدّل بين الفاصلة والتبويب والفاصلة المنقوطة والشريط العمودي. تكتشف الأداة فاصل الإدخال تلقائياً وتتيح لك اختيار فاصل مختلف للإخراج، مما يجعل تطبيع الصيغ المختلفة أمراً سهلاً.
📋
نسخ وتنزيل بنقرة واحدة
انسخ بيانات CSV المنسّقة إلى الحافظة أو نزّلها كملف. جاهزة للاستيراد إلى قواعد البيانات أو جداول البيانات أو مسارات البيانات دون تعديل إضافي.

حالات استخدام منسّق CSV

تطوير الواجهة الأمامية
نظّف ملفات بيانات CSV المستخدمة كبيانات اختبارية في مكوّنات React أو Vue. الاقتباس المتسق يمنع أخطاء التحليل أثناء عمليات بناء التطوير.
استيعاب البيانات في الواجهة الخلفية
طبّع مخرجات CSV من واجهات برمجة التطبيقات التابعة لجهات خارجية قبل تغذيتها في مسار ETL الخاص بك. حذف المسافات الزائدة وتوحيد الفواصل يمنع أخطاء انزياح الأعمدة.
DevOps وCI/CD
نسّق ملفات إعداد CSV أو بيانات التهيئة المحفوظة في نظام إدارة الإصدارات. التنسيق المتسق يقلل من ضوضاء الفروق ويجعل مراجعات الكود أسرع.
ضمان الجودة والاختبار
جهّز بيانات اختبار CSV بأنماط اقتباس وفاصل معروفة. ملفات الإدخال القابلة للاستنساخ تُسهّل كتابة تأكيدات على مخرجات المحلل.
هندسة البيانات
معالجة مسبقة لملفات CSV المُصدَّرة من قواعد البيانات القديمة قبل تحميلها في مستودعات البيانات الحديثة. إصلاح مشاكل الاقتباس وعدم تطابق الفواصل يوفّر ساعات من تصحيح الأخطاء.
التعلم والتعليم
جرّب قواعد الاقتباس في RFC 4180 بلصق مدخلات مختلفة ومراقبة كيفية تطبيعها من قِبل المنسّق. طريقة عملية لفهم الحالات الحدية في CSV.

قواعد الاقتباس والإفلات في CSV (RFC 4180)

يحدد RFC 4180 قواعد محددة لمتى وكيف يجب اقتباس الحقول. تغطي السيناريوهات الست أدناه الحالات التي يهم فيها سلوك الاقتباس.

السيناريومثالالقاعدة
Field contains delimitername,"Smith, Jr."Wrap in double quotes
Field contains newline"line1\nline2"Wrap in double quotes
Field contains double quote"She said ""hello"""Double the quote character
Field is empty,,Two consecutive delimiters
Field has leading spaces" value"Quotes preserve whitespace
Field is numeric42No quotes required unless forced

مقارنة فواصل CSV

يؤثر اختيار الفاصل على التوافق والقابلية للقراءة ومدى حاجتك إلى حقول مقتبسة.

فاصلة (,)
الافتراضي وفق RFC 4180. مدعوم من كل محلل CSV وجداول بيانات. يتطلب الاقتباس عندما تحتوي قيم الحقول على فاصلات، وهو شائع في بيانات العناوين والنصوص.
تبويب (\t)
يُستخدم في ملفات TSV (القيم المفصولة بتبويبات). نادراً ما تظهر محارف التبويب في بيانات الحقول، لذا نادراً ما يكون الاقتباس ضرورياً. شائع في صادرات علم الأحياء الحسابية وقواعد البيانات.
فاصلة منقوطة (;)
معيار في صادرات CSV بالإعدادات المحلية الأوروبية (ألمانيا، فرنسا، البرازيل) حيث تُستخدم الفاصلة فاصلاً عشرياً. يستخدم Excel الفاصلات المنقوطة عندما تستخدم الإعدادات المحلية للنظام الفاصلة العشرية.
شريط عمودي (|)
نادر في النصوص الطبيعية، مما يجعله خياراً جيداً للبيانات الفوضوية التي تظهر فيها الفاصلات والفاصلات المنقوطة في قيم الحقول. شائع في صادرات أنظمة الحاسب المركزي والأنظمة القديمة.

أمثلة برمجية

تُوضّح هذه الأمثلة كيفية تحليل بيانات CSV غير المنتظمة وإعادة تسلسلها بتنسيق متسق في لغات مختلفة. كل مقتطف يتعامل مع حذف المسافات الزائدة وتطبيع الفواصل والاقتباس.

JavaScript (Node.js)
import { parse, unparse } from 'papaparse'

const messy = `name, age ,city
Alice , 30, Berlin
Bob,25 , " Tokyo "`

// Parse with trimming, then re-serialize with consistent formatting
const parsed = parse(messy, {
  header: true,
  skipEmptyLines: true,
  transformHeader: h => h.trim(),
  transform: v => v.trim(),
})

const clean = unparse(parsed.data, { quotes: true })
console.log(clean)
// → "name","age","city"
// → "Alice","30","Berlin"
// → "Bob","25","Tokyo"
Python
import csv
import io

messy = """name, age ,city
Alice , 30, Berlin
Bob,25 , " Tokyo " """

reader = csv.DictReader(io.StringIO(messy), skipinitialspace=True)
output = io.StringIO()
writer = csv.DictWriter(
    output,
    fieldnames=[f.strip() for f in reader.fieldnames],
    quoting=csv.QUOTE_ALL,
)
writer.writeheader()
for row in reader:
    writer.writerow({k.strip(): v.strip() for k, v in row.items()})

print(output.getvalue())
# → "name","age","city"
# → "Alice","30","Berlin"
# → "Bob","25","Tokyo"
Go
package main

import (
	"encoding/csv"
	"fmt"
	"strings"
)

func main() {
	input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
	r := csv.NewReader(strings.NewReader(input))
	records, _ := r.ReadAll()

	var buf strings.Builder
	w := csv.NewWriter(&buf)
	w.UseCRLF = true // RFC 4180 line endings
	for _, record := range records {
		_ = w.Write(record)
	}
	w.Flush()
	fmt.Print(buf.String())
	// → name,age,city\r\n
	// → Alice,30,Berlin\r\n
	// → Bob,25,Tokyo\r\n
}
CLI (csvformat from csvkit)
# Re-format a CSV file with csvkit (Python-based)
csvformat -D ";" input.csv > output.csv

# Convert tabs to commas
csvformat -t input.tsv > output.csv

# Force-quote all fields
csvformat -U 1 input.csv > quoted.csv

# Using Miller (mlr) to normalize
mlr --icsv --ocsv --quote-all cat input.csv > clean.csv

الأسئلة الشائعة

ماذا يفعل منسّق CSV؟
يُحلّل منسّق CSV النص الخام، ويطبّع الاقتباسات حول الحقول، ويحذف المسافات الزائدة غير الضرورية، ويُعيد تسلسل البيانات بفاصل متسق وأسلوب موحد لنهايات الأسطر. المخرجات هي ملف CSV نظيف يتوافق مع RFC 4180 أو قواعد التنسيق التي تختارها.
كيف يختلف تنسيق CSV عن التحقق منه؟
التحقق يفحص ما إذا كان ملف CSV يتوافق مع مجموعة من القواعد ويُبلّغ عن الأخطاء. التنسيق يذهب أبعد من ذلك: إذ يُعيد كتابة الملف لإصلاح تلك المشاكل. أداة التحقق تُخبرك أن الصف 5 يحتوي على فاصلة غير مقتبسة. المنسّق يُصلحها بإضافة علامات اقتباس حول الحقل.
لماذا أحتاج إلى تنسيق ملفات CSV قبل استيرادها؟
تمتلك أدوات استيراد قواعد البيانات ومسارات ETL وبرامج جداول البيانات قواعد تحليل CSV مختلفة قليلاً. الحقل غير المقتبس الذي يحتوي على فاصلة سيُقسَّم إلى عمودين في المحللات الصارمة. تنسيق CSV وفق RFC 4180 قبل الاستيراد يمنع أخطاء انزياح الأعمدة وتلف البيانات الصامت.
هل تُرسل بياناتي إلى خادم عند استخدام هذه الأداة؟
لا. يتم كل تحليل وتنسيق في متصفحك باستخدام JavaScript. تبقى بيانات CSV على جهازك ولا تُرسل عبر الشبكة أبداً. يمكنك التحقق من ذلك بفتح تبويب الشبكة في أدوات المطوّر أثناء استخدام الأداة.
هل يمكنني تغيير الفاصل أثناء التنسيق؟
نعم. تكتشف الأداة فاصل الإدخال تلقائياً (فاصلة، تبويب، فاصلة منقوطة، أو شريط عمودي) وتتيح لك اختيار فاصل مختلف للإخراج. هذا مفيد عند التحويل بين صيغ CSV الإقليمية أو الانتقال من TSV إلى CSV القياسي.
كيف تتعامل الأداة مع الحقول المقتبسة التي تحتوي على أسطر جديدة مضمّنة؟
وفق RFC 4180، يجب أن تُحاط الحقول التي تحتوي على أسطر جديدة بعلامات اقتباس مزدوجة. يحافظ المنسّق على هذه الأسطر الجديدة المضمّنة ويضمن وجود علامات الاقتباس المحيطة بها. إذا كان حقل ما يحتوي على سطر جديد غير مقتبس في الإدخال، يُحيطه المنسّق بعلامات اقتباس أثناء إعادة التسلسل.
ما الحجم الأقصى للملف الذي تستطيع هذه الأداة معالجته؟
نظراً لأن الأداة تعمل في المتصفح، يعتمد الحد العملي على الذاكرة المتاحة في جهازك. عادةً تُعالَج الملفات حتى 10-20 ميغابايت دون مشاكل على الأجهزة الحديثة. للملفات الأكبر من ذلك، تُعدّ أداة سطر الأوامر مثل csvkit أو Miller خياراً أفضل.