يكتب قائمة صفوف، كل منها قائمة خلايا، كنص CSV؛ الخلية التي تحوي فاصلا أو علامة اقتباس أو فاصل أسطر تُحاط بعلامتي اقتباس مزدوجتين.
مثال: [["name", "age"], ["John", "30"]] -> name,age و John,30 على سطرين.
الصفوف والفاصلان
نص CSV
يكتب قائمة كائنات كنص CSV بالأعمدة التي تسميها في headers، بذلك الترتيب؛
الخاصية التي يفتقر إليها الكائن تصبح خلية فارغة.
مع includeHeaders هو true يحمل السطر الأول أسماء الترويسات. مثال: [{ name: "John", age: "30" }] مع الترويسات ["name", "age"] -> name,age و John,30.
الكائنات وأسماء الأعمدة وعلم الترويسة والفواصل
نص CSV
يكتب قائمة كائنات كنص CSV مستخدما أسماء خصائص الكائن الأول كأعمدة، بترتيبها؛ القائمة الفارغة تعطي نصا فارغا.
مثال: [{ name: "John", age: "30" }] -> name,age و John,30.
الكائنات وعلم الترويسة والفواصل
نص CSV
يقسم نص CSV إلى قائمة صفوف، كل منها قائمة سلاسل خلايا؛ لا يُحوّل شيء إلى أرقام.
تُتخطى الأسطر الفارغة، وتُشذّب الخلايا مع سطرها، ويمكن أن تحوي الخلية المحاطة بعلامتي اقتباس مزدوجتين
الفاصل وعلامات اقتباس مضاعفة. مثال: a,b,c و 1,2,3 على سطرين ->
[["a", "b", "c"], ["1", "2", "3"]].
نص CSV والفاصلان
الصفوف كقوائم من سلاسل الخلايا النصية
يحول نص CSV إلى قائمة كائنات، واحد لكل صف بيانات، مفتاحها أسماء ترويسات الصف
headerRow.
تبدأ الصفوف عند dataStartRow، وتصبح الأعمدة المسماة في numberColumns أرقاما والخلية
المفقودة تصبح سلسلة فارغة. مثال: name,age ثم John,30 -> [{ name: "John", age: "30" }].
نص CSV وفهرسا صف الترويسة وصف البيانات والفواصل والأعمدة الرقمية
كائن واحد لكل صف بيانات
يحول نص CSV إلى قائمة كائنات مفتاحها headers التي تعطيها، للملفات التي لا سطر
ترويسة لها؛ سطر الترويسة الذي يحويه الملف فعلا يُتخطى بتعيين dataStartRow بعده.
تصبح الأعمدة المسماة في numberColumns أرقاما. مثال: John,30 مع الترويسات ["name", "age"] -> [{ name: "John", age: "30" }].
نص CSV وأسماء الترويسة وصف بداية البيانات والفواصل والأعمدة الرقمية
كائن واحد لكل صف بيانات
يسرد كل قيمة في عمود واحد، يُعثر عليه باسم ترويسته، بترتيب الصفوف؛ الصف الذي لا يحوي تلك الخلية يعطي سلسلة فارغة.
مع asNumber هو true تُحلل القيم كأرقام. مثال: name,age ثم John,30 و
Jane,25، العمود name -> ["John", "Jane"].
نص CSV واسم العمود وفهرسا صف الترويسة وصف البيانات والفواصل وعلم الأرقام
قيم العمود، من الأعلى إلى الأسفل
يحتفظ فقط بالصفوف التي تساوي خليتها في column القيمة value، معطيا إياها ككائنات مفتاحها
الترويسات.
تكون المقارنة على النص ما لم يكن العمود مذكورا في numberColumns، وعندها يُقارن
الطرفان كأرقام. مثال: العمود age، القيمة 30 -> [{ name: "John", age: "30" }].
نص CSV واسم العمود والقيمة وفهارس الصفوف والفواصل والأعمدة الرقمية
الصفوف المطابقة ككائنات
يقرأ خلايا الصف headerRow كأسماء الترويسات؛ فهرس الصف الواقع بعد النهاية يرمي
خطأ.
مثال: name,age ثم John,30 -> ["name", "age"].
نص CSV وفهرس صف الترويسة والفواصل
أسماء الترويسة بترتيب الأعمدة
يعد صفوف البيانات: كل الأسطر غير الفارغة ناقص التي تسبق dataStartRow، أو ناقص سطر
ترويسة واحد عندما يكون hasHeaders هو true و dataStartRow متروكا.
مثال: name,age و John,30 و Jane,25 مع ترويسات -> 2.
نص CSV وعلم الترويسة وصف بداية البيانات الاختياري والفواصل
عدد صفوف البيانات
يعد خلايا أول صف غير فارغ، وهو عدد الأعمدة؛ النص الفارغ يعطي 0.
مثال: name,age,city ثم John,30,NYC -> 3.
نص CSV والفاصلان
عدد الأعمدة
قراءة CSV وكتابته، صيغة الجداول النصية البسيطة بصف واحد لكل سطر وفاصل بين الخلايا. تقسم المحللات على
rowSeparatorوcolumnSeparator، وتحترم الخلايا المحاطة بعلامات اقتباس مزدوجة مع علامات اقتباس مضاعفة بداخلها، وتتخطى الأسطر الفارغة وتقرأ\nو\tو\rالمكتوبة كحرفين على أنها الحرف الحقيقي؛ وتحيط الكاتبات بعلامات اقتباس الخلية التي تحوي فاصلا أو علامة اقتباس أو فاصل أسطر.