TypeScript में CSV के साथ कार्य: लाइब्रेरीज़ और कोड उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

TypeScript में CSV के साथ कार्य: पूर्ण मार्गदर्शिका

\n\n

CSV (Comma-Separated Values) सारणीबद्ध डेटा के आदान-प्रदान के लिए सबसे लोकप्रिय प्रारूपों में से एक है। TypeScript (और JavaScript) में CSV फ़ाइलों को पार्स करने, जनरेट करने और प्रोसेस करने के लिए कई शक्तिशाली लाइब्रेरीज़ मौजूद हैं। इस लेख में हम मुख्य टूल्स, उनकी क्षमताओं पर चर्चा करेंगे और व्यावहारिक उदाहरण प्रस्तुत करेंगे।

\n\n

CSV के लिए लाइब्रेरीज़ का उपयोग क्यों करें?

\n\n

JavaScript के अंतर्निहित साधन (जैसे split(',')) जटिल मामलों को ध्यान में नहीं रखते:

\n
    \n
  • फ़ील्ड के अंदर एस्केप किए गए कोट्स और कॉमा
  • \n
  • अलग-अलग डिलीमीटर (सेमीकोलन, टैब)
  • \n
  • अलग-अलग एन्कोडिंग और BOM
  • \n
  • मल्टी-लाइन वैल्यू
  • \n
  • लाइन एंडिंग के विभिन्न प्रकार (CRLF, LF)
  • \n
\n

पेशेवर लाइब्रेरीज़ इन सभी समस्याओं का समाधान करती हैं और डेटा के साथ काम करने के लिए एक सुविधाजनक API प्रदान करती हैं।

\n\n

1. csv-parse — Node.js और ब्राउज़र में CSV पार्सिंग

\n\n

csv-parse csv.js इकोसिस्टम का हिस्सा है, जो पार्सिंग के लिए सबसे लोकप्रिय लाइब्रेरीज़ में से एक है। यह Node.js और ब्राउज़र (bundler के माध्यम से) दोनों में काम करती है।

\n\n

इंस्टॉलेशन

\n
npm install csv-parse
\n\n

TypeScript के साथ उपयोग का उदाहरण

\n
import { parse } from 'csv-parse/sync';\nimport { readFileSync } from 'fs';\n\ninterface User {\n    id: number;\n    name: string;\n    email: string;\n}\n\nconst csvData = readFileSync('users.csv', 'utf-8');\nconst records: User[] = parse(csvData, {\n    columns: true,          // पहली पंक्ति हेडर है\n    skip_empty_lines: true,\n    delimiter: ',',\n    cast: (value, context) => {\n        if (context.column === 'id') return parseInt(value, 10);\n        return value;\n    }\n});\n\nconsole.log(records);
\n\n

2. PapaParse — ब्राउज़र और Node.js के लिए सार्वभौमिक पार्सर

\n\n

PapaParse एक लाइब्रेरी है जिसमें बड़ी फ़ाइलों (स्ट्रीमिंग प्रोसेसिंग), स्वचालित डिलीमीटर पहचान और व्यापक कॉन्फ़िगरेशन विकल्पों के लिए उत्कृष्ट समर्थन है।

\n\n

इंस्टॉलेशन

\n
npm install papaparse
\n\n

परिणामों के टाइपिफिकेशन के साथ उदाहरण

\n
import Papa from 'papaparse';\n\ninterface Product {\n    sku: string;\n    price: number;\n    quantity: number;\n}\n\nconst csvString = `sku,price,quantity\nABC-001,29.99,100\nABC-002,49.50,50`;\n\nconst result = Papa.parse<Product>(csvString, {\n    header: true,\n    dynamicTyping: true,  // स्वचालित टाइप रूपांतरण\n    skipEmptyLines: true\n});\n\nif (result.errors.length > 0) {\n    console.error('पार्सिंग त्रुटियाँ:', result.errors);\n} else {\n    result.data.forEach(product => {\n        console.log(`उत्पाद ${product.sku}: ${product.price} रु.`);\n    });\n}
\n\n

3. csv-stringify — डेटा से CSV जनरेशन

\n\n

विपरीत कार्य के लिए — ऑब्जेक्ट्स के ऐरे से CSV बनाना — csv-stringify का उपयोग करें। यह भी csv.js इकोसिस्टम का हिस्सा है।

\n\n

इंस्टॉलेशन

\n
npm install csv-stringify
\n\n

CSV जनरेशन का उदाहरण

\n
import { stringify } from 'csv-stringify/sync';\nimport { writeFileSync } from 'fs';\n\ninterface Order {\n    orderId: number;\n    customer: string;\n    total: number;\n}\n\nconst orders: Order[] = [\n    { orderId: 1001, customer: 'इवान पेत्रोव', total: 1500.50 },\n    { orderId: 1002, customer: 'मारिया सिदोरोवा', total: 2300.00 },\n    { orderId: 1003, customer: 'अलेक्सेई इवानोव', total: 890.75 }\n];\n\nconst csvOutput = stringify(orders, {\n    header: true,\n    columns: ['orderId', 'customer', 'total']\n});\n\nwriteFileSync('orders.csv', csvOutput, 'utf-8');\nconsole.log('CSV फ़ाइल सफलतापूर्वक बनाई गई');
\n\n

4. त्रुटि प्रबंधन और डेटा वैलिडेशन

\n\n

CSV के साथ काम करते समय त्रुटियों को सही ढंग से संभालना महत्वपूर्ण है। डेटा जाँच के साथ एक उदाहरण देखें:

\n\n
import Papa from 'papaparse';\n\ninterface ValidatedRow {\n    isValid: boolean;\n    errors: s                    

अनुशंसाएँ