Bitbybit Docs
    Preparing search index...

    Class CSVBitByBit

    قراءة CSV وكتابته، صيغة الجداول النصية البسيطة بصف واحد لكل سطر وفاصل بين الخلايا. تقسم المحللات على rowSeparator و columnSeparator، وتحترم الخلايا المحاطة بعلامات اقتباس مزدوجة مع علامات اقتباس مضاعفة بداخلها، وتتخطى الأسطر الفارغة وتقرأ \n و \t و \r المكتوبة كحرفين على أنها الحرف الحقيقي؛ وتحيط الكاتبات بعلامات اقتباس الخلية التي تحوي فاصلا أو علامة اقتباس أو فاصل أسطر.

    Index

    Constructors

    generate

    • يكتب قائمة صفوف، كل منها قائمة خلايا، كنص CSV؛ الخلية التي تحوي فاصلا أو علامة اقتباس أو فاصل أسطر تُحاط بعلامتي اقتباس مزدوجتين.

      مثال: [["name", "age"], ["John", "30"]] -> name,age و John,30 على سطرين.

      Parameters

      Returns string

      نص CSV

      const csv = bitbybit.csv.arrayToCsv({ array: [["x", "y", "z"], [1, 2, 3]], rowSeparator: "\n", columnSeparator: "," });
      
    • يكتب قائمة كائنات كنص CSV بالأعمدة التي تسميها في headers، بذلك الترتيب؛ الخاصية التي يفتقر إليها الكائن تصبح خلية فارغة.

      مع includeHeaders هو true يحمل السطر الأول أسماء الترويسات. مثال: [{ name: "John", age: "30" }] مع الترويسات ["name", "age"] -> name,age و John,30.

      Type Parameters

      • T = Record<string, unknown>

      Parameters

      • inputs: JsonToCsvDto<T>

        الكائنات وأسماء الأعمدة وعلم الترويسة والفواصل

      Returns string

      نص CSV

      const csv = bitbybit.csv.jsonToCsv({ json: people, headers: ["name", "age"], includeHeaders: true, rowSeparator: "\n", columnSeparator: "," });
      
    • يكتب قائمة كائنات كنص CSV مستخدما أسماء خصائص الكائن الأول كأعمدة، بترتيبها؛ القائمة الفارغة تعطي نصا فارغا.

      مثال: [{ name: "John", age: "30" }] -> name,age و John,30.

      Type Parameters

      • T = Record<string, unknown>

      Parameters

      • inputs: JsonToCsvAutoDto<T>

        الكائنات وعلم الترويسة والفواصل

      Returns string

      نص CSV

      const csv = bitbybit.csv.jsonToCsvAuto({ json: people, includeHeaders: true, rowSeparator: "\n", columnSeparator: "," });
      

    parse

    • يقسم نص CSV إلى قائمة صفوف، كل منها قائمة سلاسل خلايا؛ لا يُحوّل شيء إلى أرقام.

      تُتخطى الأسطر الفارغة، وتُشذّب الخلايا مع سطرها، ويمكن أن تحوي الخلية المحاطة بعلامتي اقتباس مزدوجتين الفاصل وعلامات اقتباس مضاعفة. مثال: a,b,c و 1,2,3 على سطرين -> [["a", "b", "c"], ["1", "2", "3"]].

      Parameters

      Returns string[][]

      الصفوف كقوائم من سلاسل الخلايا النصية

      const rows = bitbybit.csv.parseToArray({ csv: "x,y,z\n1,2,3\n4,5,6", rowSeparator: "\n", columnSeparator: "," });
      
    • يحول نص CSV إلى قائمة كائنات، واحد لكل صف بيانات، مفتاحها أسماء ترويسات الصف headerRow.

      تبدأ الصفوف عند dataStartRow، وتصبح الأعمدة المسماة في numberColumns أرقاما والخلية المفقودة تصبح سلسلة فارغة. مثال: name,age ثم John,30 -> [{ name: "John", age: "30" }].

      Type Parameters

      • T = Record<string, string | number>

      Parameters

      • inputs: ParseToJsonDto

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

      Returns T[]

      كائن واحد لكل صف بيانات

      const people = bitbybit.csv.parseToJson({ csv: "name,age\nJohn,30\nJane,25", headerRow: 0, dataStartRow: 1, rowSeparator: "\n", columnSeparator: ",", numberColumns: ["age"] });
      
    • يحول نص CSV إلى قائمة كائنات مفتاحها headers التي تعطيها، للملفات التي لا سطر ترويسة لها؛ سطر الترويسة الذي يحويه الملف فعلا يُتخطى بتعيين dataStartRow بعده.

      تصبح الأعمدة المسماة في numberColumns أرقاما. مثال: John,30 مع الترويسات ["name", "age"] -> [{ name: "John", age: "30" }].

      Type Parameters

      • T = Record<string, string | number>

      Parameters

      • inputs: ParseToJsonWithHeadersDto

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

      Returns T[]

      كائن واحد لكل صف بيانات

      const people = bitbybit.csv.parseToJsonWithHeaders({ csv: "John,30\nJane,25", headers: ["name", "age"], dataStartRow: 0, rowSeparator: "\n", columnSeparator: ",", numberColumns: ["age"] });
      

    query

    • يسرد كل قيمة في عمود واحد، يُعثر عليه باسم ترويسته، بترتيب الصفوف؛ الصف الذي لا يحوي تلك الخلية يعطي سلسلة فارغة.

      مع asNumber هو true تُحلل القيم كأرقام. مثال: name,age ثم John,30 و Jane,25، العمود name -> ["John", "Jane"].

      Parameters

      • inputs: QueryColumnDto

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

      Returns (string | number)[]

      قيم العمود، من الأعلى إلى الأسفل

      const ages = bitbybit.csv.queryColumn({ csv: "name,age\nJohn,30\nJane,25", column: "age", headerRow: 0, dataStartRow: 1, rowSeparator: "\n", columnSeparator: ",", asNumber: true });
      
    • يحتفظ فقط بالصفوف التي تساوي خليتها في column القيمة value، معطيا إياها ككائنات مفتاحها الترويسات.

      تكون المقارنة على النص ما لم يكن العمود مذكورا في numberColumns، وعندها يُقارن الطرفان كأرقام. مثال: العمود age، القيمة 30 -> [{ name: "John", age: "30" }].

      Type Parameters

      • T = Record<string, string | number>

      Parameters

      • inputs: QueryRowsByValueDto

        نص CSV واسم العمود والقيمة وفهارس الصفوف والفواصل والأعمدة الرقمية

      Returns T[]

      الصفوف المطابقة ككائنات

      const thirty = bitbybit.csv.queryRowsByValue({ csv: "name,age\nJohn,30\nJane,25", column: "age", value: "30", headerRow: 0, dataStartRow: 1, rowSeparator: "\n", columnSeparator: "," });
      
    • يقرأ خلايا الصف headerRow كأسماء الترويسات؛ فهرس الصف الواقع بعد النهاية يرمي خطأ.

      مثال: name,age ثم John,30 -> ["name", "age"].

      Parameters

      • inputs: GetHeadersDto

        نص CSV وفهرس صف الترويسة والفواصل

      Returns string[]

      أسماء الترويسة بترتيب الأعمدة

      const headers = bitbybit.csv.getHeaders({ csv: "name,age\nJohn,30", headerRow: 0, rowSeparator: "\n", columnSeparator: "," });
      
    • يعد صفوف البيانات: كل الأسطر غير الفارغة ناقص التي تسبق dataStartRow، أو ناقص سطر ترويسة واحد عندما يكون hasHeaders هو true و dataStartRow متروكا.

      مثال: name,age و John,30 و Jane,25 مع ترويسات -> 2.

      Parameters

      • inputs: GetRowCountDto

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

      Returns number

      عدد صفوف البيانات

      const count = bitbybit.csv.getRowCount({ csv: "name,age\nJohn,30\nJane,25", hasHeaders: true, rowSeparator: "\n", columnSeparator: "," });
      
    • يعد خلايا أول صف غير فارغ، وهو عدد الأعمدة؛ النص الفارغ يعطي 0.

      مثال: name,age,city ثم John,30,NYC -> 3.

      Parameters

      Returns number

      عدد الأعمدة

      const columns = bitbybit.csv.getColumnCount({ csv: "name,age,city\nJohn,30,NYC", rowSeparator: "\n", columnSeparator: "," });