CSV টুলকিট
ফরম্যাটpapaparse দিয়ে CSV/TSV পার্স, সাজানো এবং প্রিভিউ করুন — কাস্টম ডিলিমিটার ও উদ্ধৃতি চিহ্ন সহ, অথবা CSV এবং JSON-এর মধ্যে রূপান্তর করুন। কলাম অনুসারে সাজান এবং নকল সরান।
দূরবর্তী URL আনা হয় না; আপনার JSON সরাসরি পেস্ট করুন।
ইউরোপে প্রায়ই ; কে CSV বিভাজক হিসেবে ব্যবহার করা হয়।
এই পৃষ্ঠায়
CSV টুলকিট কী?#
CSV হলো টেবিল ডেটার জন্য সর্বনিম্ন-সাধারণ-হার ফরম্যাট — প্রতিটি স্প্রেডশিট, প্রতিটি ডেটাবেস ইমপোর্ট উইজার্ড, এবং প্রতিটি অ্যানালিটিক্স টুল এটি পড়তে পারে, এবং প্রায় কেউই বিস্তারিতে একমত নয়। বিভাজকটি কি একটি কমা নাকি একটি সেমিকোলন? প্রথম সারিতে কি হেডার আছে? মানগুলো কি " দিয়ে নাকি ' দিয়ে উদ্ধৃত করা? একটি ফাইল যা একটি টুলে নিখুঁতভাবে খোলে তা অন্যটিতে বিকৃত এসে পৌঁছাতে পারে, শুধু কারণ ডিফল্টগুলো ভিন্ন। একটি CSV টুলকিট এই পছন্দগুলোকে স্পষ্ট করতে এবং একটি ফাইলকে পুনরায় আকৃতি দিতে বিদ্যমান যাতে এটি আপনার প্রয়োজন মেটায়।
এই পৃষ্ঠাটি চারটি কাজ করে, সবই papaparse দ্বারা চালিত। সারিবদ্ধ করুন ফাইলটি পার্স করে এবং প্রতিটি সেলকে তার কলামের প্রস্থে প্যাড করে, একটি মনোস্পেস, কলাম-সারিবদ্ধ গ্রিড তৈরি করে যা আপনি সরাসরি একটি কোড রিভিউ, একটি README, বা একটি বাগ রিপোর্টে পেস্ট করতে পারেন — এমন একটি বিন্যাস যা একটি বিভ্রান্ত সারিকে সঙ্গে সঙ্গে লাফিয়ে ওঠে। প্রিভিউ পার্স করে এবং পৃষ্ঠায় টেবিলটি রেন্ডার করে, যাতে আপনি এটি দিয়ে কিছু করার আগে ডেটা দেখতে পারেন। CSV → JSON সারিগুলোকে একটি JSON অ্যারেতে রূপান্তর করে (হেডার থাকলে অবজেক্টের, নাহলে অ্যারের)। JSON → CSV অন্য দিকে যায়, একটি JSON অ্যারে নিয়ে CSV নির্গত করে। এগুলোর সবার উপরে, আপনি যেকোনো কলাম অনুসারে সাজাতে পারেন, সম্পূর্ণ সারিগুলো ডিডুপ্লিকেট করতে পারেন, বিভাজক স্যুইচ করতে পারেন (কমা, সেমিকোলন, ট্যাব, বা একটি কাস্টম একক অক্ষর), এবং উদ্ধৃতি অক্ষর বেছে নিতে পারেন — সঠিক নব যা সিদ্ধান্ত নেয় ফাইলটি আপনার পাইপলাইনের পরবর্তী টুলে টিকবে কি না।
ব্যবহারবিধি#
- বাঁদিকের ইনপুট পেইনে আপনার CSV (বা JSON → CSV মোডে JSON) পেস্ট করুন। প্লেসহোল্ডারটি প্রত্যাশিত আকৃতি দেখায়; নমুনা একটি ছোট ডেটাসেট লোড করে।
- একটি মোড বোতাম বেছে নিন: সারিবদ্ধ করুন, প্রিভিউ, বা JSON। JSON নির্বাচিত হলে, দিকের জন্য একটি দ্বিতীয় বোতাম গ্রুপ উপস্থিত হয় — CSV → JSON বা JSON → CSV।
- টুলবারে কাঠামোগত বিকল্পগুলো সেট করুন:
- বিভাজক — কমা, সেমিকোলন, ট্যাব, বা কাস্টম (কাস্টম মানের জন্য একটি একক-অক্ষর ফিল্ড উপস্থিত হয়, ডিফল্ট
|)। - উদ্ধৃতি — দ্বি (
") বা একক (')। - হেডার সারি — যখন সারি 1 কলামের নাম ধারণ করে তখন টিক দিন; হেডারহীন ডেটার জন্য টিক তুলে দিন। হেডার মোড পার্সিং এবং JSON আউটপুট আকৃতি উভয় চালায়।
- বিভাজক — কমা, সেমিকোলন, ট্যাব, বা কাস্টম (কাস্টম মানের জন্য একটি একক-অক্ষর ফিল্ড উপস্থিত হয়, ডিফল্ট
- ঐচ্ছিকভাবে ডেটা পরিষ্কার করুন: একটি যার ভিত্তিতে সাজান কলাম বেছে নিন (আপনার হেডার থেকে পপুলেট, বা হেডারহীন ইনপুটের জন্য একটি সংখ্যাসূচক সূচক), ঊর্ধ্বক্রম বা নিম্নক্রম ক্রম বেছে নিন, এবং সম্পূর্ণ সদৃশ সারিগুলো বাদ দিতে নকল সরান টিক দিন।
- আউটপুট পেইনে ফলাফল পড়ুন (বা প্রিভিউ মোডে প্রিভিউ গ্রিড)। হেডার আউটপুট আকার এবং সারির গণনা দেখায়; এটি নিতে কপি ব্যবহার করুন। মুছুন উভয় পেইন রিসেট করে।
কোনো সারিতে ফিল্ডের সংখ্যা ভুল থাকলে, বা ইনপুট ত্রুটিপূর্ণ হলে, স্ট্যাটাস বার সারির নম্বর রিপোর্ট করে যাতে আপনি অনুমান করার বদলে উৎস ঠিক করতে পারেন।
মূল বৈশিষ্ট্য#
- কলাম-সারিবদ্ধ আউটপুট। সারিবদ্ধ মোড প্রতিটি সেলকে তার কলামের দীর্ঘতম মানে প্যাড করে, তাই কমার দেয়ালের মতো দেখানো একটি CSV হঠাৎ সারিবদ্ধ হয় — এমন একটি সারি যা একটি ফিল্ডে ছোট তা ধরতে অমূল্য।
- JSON-এ উভয় দিক। CSV → JSON অবজেক্টের একটি অ্যারে (হেডার সহ) বা অ্যারের একটি অ্যারে (হেডারহীন) তৈরি করে। JSON → CSV যেকোনো আকৃতি ফিরিয়ে গ্রহণ করে।
- বিভাজক-সচেতন। কমা, সেমিকোলন (ইউরোপীয় লোকেলে সাধারণ যেখানে কমা হলো দশমিক বিভাজক), ট্যাব (TSV), বা একটি কাস্টম অক্ষরের মধ্যে স্যুইচ করুন। টুলবারের নিচের ইঙ্গিতটি আপনাকে মনে করিয়ে দেয় কেন সেমিকোলন বিদ্যমান।
- সাজান এবং ডিডুপ্লিকেট। উভয় মান সংখ্যা-সদৃশ দেখালে সংখ্যাসূচকভাবে সাজান, নাহলে লেক্সিকোগ্রাফিকভাবে। ডিডুপ সঠিক সম্পূর্ণ-সারি পুনরাবৃত্তি সরায় (হেডার সারি সর্বদা রাখা হয়)।
- নিরাপদ প্রিভিউ। প্রিভিউ গ্রিডটি নিরাপদ DOM API দিয়ে তৈরি — শুধুমাত্র
textContent, আপনার ডেটার কখনোinnerHTMLনয় — তাই একটি<script>ট্যাগে পূর্ণ CSV-ও নিষ্ক্রিয় টেক্সট হিসেবে রেন্ডার হয়। - কঠোরভাবে ক্লায়েন্ট-সাইড, 1 MB-এর উপরের ইনপুটের জন্য একটি Web Worker সহ।
ব্যবহারিক উদাহরণ#
একটি ছোট রোস্টার যাতে একটি সদৃশ সারি এবং একটি হেডার সহ পেস্ট করা হয়েছে:
ইনপুট:
name,role,city
Ada,Engineer,London
Lin,Designer,Taipei
Ada,Engineer,London
Sam,Manager,Berlin
তৃতীয় সারিটি Ada-কে হুবহু পুনরাবৃত্তি করে। কমা বিভাজক, হেডার চালু সহ সারিবদ্ধ করুন ক্লিক করুন, তারপর নকল সরান টিক দিন:
name role city
Ada Engineer London
Lin Designer Taipei
Sam Manager Berlin
প্রতিটি কলাম তার সবচেয়ে প্রশস্ত মানে প্যাড করা, তাই তিনটি সারি সারিবদ্ধ এবং সদৃশ Ada চলে গেছে — স্ট্যাটাস বার একটি সারি সরানো হয়েছে বলে রিপোর্ট করে। এখন মোডটি JSON (CSV → JSON) এ স্যুইচ করুন একই বিকল্প সহ:
[
{ "name": "Ada", "role": "Engineer", "city": "London" },
{ "name": "Lin", "role": "Designer", "city": "Taipei" },
{ "name": "Sam", "role": "Manager", "city": "Berlin" }
]
হেডার সারিটি অবজেক্ট কী হয়ে গেছে; প্রতিটি অবশিষ্ট ডেটা সারি একটি অবজেক্ট হয়ে গেছে। role অনুসারে সাজালে সারিগুলো লেক্সিকোগ্রাফিকভাবে পুনর্বিন্যস্ত হবে; একটি সংখ্যাসূচক কলাম অনুসারে সাজালে মান অনুসারে সাজানো হবে।
প্রশ্নোত্তর#
আমার কখন কমার বদলে সেমিকোলন ব্যবহার করা উচিত?#
যখন ডেটাতে মানগুলোর অংশ হিসেবে কমা থাকে এবং আপনি এমন একটি লোকেলে আছেন (ইউরোপের বেশিরভাগ, ল্যাটিন আমেরিকা) যেখানে কমা হলো দশমিক বিভাজক — 3,14 সেখানে একটি একক সংখ্যা, দুটি ফিল্ড নয়। সেই লোকেলগুলোতে Excel ডিফল্টভাবে সেমিকোলন সহ CSV রপ্তানি করে। একটি ফাইল সবকিছু কলাম A-তে পিষ্ট করে খুললে, বিভাজকটি প্রায় নিশ্চিতভাবেই ভুল; সেমিকোলনে স্যুইচ করুন এবং পুনরায় সারিবদ্ধ করুন।
নকল সরান আসলে কী তুলনা করে?#
এটি হেডার আলাদা করার পরে সঠিক সমতার জন্য সম্পূর্ণ সারিগুলো তুলনা করে। দুটি সারি তখনই সদৃশ যখন প্রতিটি ফিল্ড মেলে, সেলে সেলে। হেডার সারিটিকে কখনো সদৃশ হিসেবে বিবেচনা করা হয় না এবং সর্বদা রাখা হয়। আংশিক মিল (একই নাম, ভিন্ন শহর) সদৃশ হিসেবে গণ্য হয় না।
CSV → JSON কীভাবে অবজেক্ট এবং অ্যারের মধ্যে সিদ্ধান্ত নেয়?#
হেডার সারি টিক দেওয়া থাকলে, প্রতিটি ডেটা সারি একটি অবজেক্ট হয়ে যায় যার কীগুলো হলো হেডারের নাম। এটি না টিক দেওয়া থাকলে, প্রতিটি সারি স্ট্রিংয়ের একটি অ্যারে হয়ে যায়, শুধুমাত্র প্রিভিউতে Col 1, Col 2 ইত্যাদি লেবেলযুক্ত — JSON আউটপুট হলো অ্যারের একটি প্লেইন অ্যারে। হেডার বিকল্পটি টিক দিন যখন সারি 1 সত্যিই কলামের নাম; কাঁচা সংখ্যাসূচক গ্রিডের জন্য এটি আনটিক করুন।
আমার ডেটা কি কোথাও আপলোড হয়?#
না। পার্সিং এবং আনপার্সিং উভয়ই papaparse-এর মাধ্যমে আপনার ব্রাউজারে চলে, পৃষ্ঠার সাথে বান্ডল করা। 1 MB-এর উপরের ফাইলগুলো একটি Web Worker-এ পরিচালিত হয় যাতে UI প্রতিক্রিয়াশীল থাকে, কিন্তু ডেটা কখনো আপনার ডিভাইস ছাড়ে না।