ToolDeck

CSV ফরম্যাটার

কাস্টম ডিলিমিটার অপশন সহ CSV ডেটা ফরম্যাট ও নরমালাইজ করুন

একটি উদাহরণ চেষ্টা করুন

CSV ইনপুট

ফরম্যাটকৃত CSV

স্থানীয়ভাবে চলে · গোপন তথ্য পেস্ট করা নিরাপদ
ফরম্যাটকৃত CSV এখানে দেখা যাবে…
আউটপুট ডিলিমিটার:

CSV ফরম্যাটিং কী?

CSV (Comma-Separated Values) ফরম্যাটিং হলো কাঁচা টেবুলার টেক্সটকে নরমালাইজ করার প্রক্রিয়া, যাতে ডিলিমিটার, কোটিং, হোয়াইটস্পেস এবং লাইন এন্ডিং একটি সামঞ্জস্যপূর্ণ নিয়মের সেট অনুসরণ করে। ২০০৫ সালে প্রকাশিত RFC 4180 সবচেয়ে বহুল গৃহীত CSV মান নির্ধারণ করে: কমা দিয়ে আলাদা করা ফিল্ড, CRLF দিয়ে শেষ হওয়া রেকর্ড, এবং কমা, ডাবল কোট বা নিউলাইন ধারণকারী যেকোনো ফিল্ড ডাবল কোটে মোড়ানো। একটি CSV ফরম্যাটার অগোছালো বা অসামঞ্জস্যপূর্ণ CSV ডেটা নিয়ে এই নিয়মগুলো মেনে চলার জন্য পুনরায় লিখে দেয়।

বাস্তব জীবনের CSV ফাইল খুব কমই পরিষ্কার আকারে আসে। Excel, Google Sheets এবং ডেটাবেস ডাম্প ইউটিলিটি থেকে স্প্রেডশিট এক্সপোর্ট প্রত্যেকে ভিন্ন কোটিং কৌশল প্রয়োগ করে, হোয়াইটস্পেস ভিন্নভাবে পরিচালনা করে, এবং কমার পরিবর্তে সেমিকোলন বা ট্যাব ব্যবহার করতে পারে। যখন আপনি এই ফাইলগুলি একটি পার্সারে দেন যা কঠোর RFC 4180 ইনপুট প্রত্যাশা করে, ফলাফল প্রায়ই ভাঙা রো, সরে যাওয়া কলাম বা নীরবে ডেটা নষ্ট হয়। প্রক্রিয়াকরণের আগে ফরম্যাট করলে এই সমস্যাগুলি তাড়াতাড়ি ধরা পড়ে।

একটি CSV ফরম্যাটার CSV কনভার্টার থেকে আলাদা। ফরম্যাটিং করলেও ডেটা CSV-তেই থাকে। এটি কোটিং নরমালাইজ করে, ছড়িয়ে পড়া হোয়াইটস্পেস ট্রিম করে, কলাম পুনরায় সাজায় এবং ঐচ্ছিকভাবে ডিলিমিটার পরিবর্তন করে। কনভার্ট করলে ফরম্যাট সম্পূর্ণ বদলে যায়, JSON, HTML, SQL বা Markdown আউটপুট তৈরি হয়।

এই CSV ফরম্যাটার কেন ব্যবহার করবেন?

এই টুল আপনার CSV সম্পূর্ণ ব্রাউজারেই পার্স করে ফরম্যাট করে। আপনার ডেটা কখনো আপনার মেশিন ছাড়ে না।

তাৎক্ষণিক ফরম্যাটিং
CSV পেস্ট করুন এবং সঙ্গে সঙ্গে পরিষ্কার আউটপুট দেখুন। ফরম্যাটার আপনার টাইপ করার সাথে সাথে ব্রাউজারেই পার্স করে আউটপুট তৈরি করে।
🔒
গোপনীয়তাকে অগ্রাধিকার দেওয়া প্রক্রিয়াকরণ
সমস্ত পার্সিং ও ফরম্যাটিং আপনার ব্রাউজার ট্যাবে ঘটে। নেটওয়ার্কে কোনো ডেটা পাঠানো হয় না। সংবেদনশীল ডেটাসেট, ক্রেডেনশিয়াল এবং PII—যা বাইরে পাঠানো উচিত নয়—তার জন্য সম্পূর্ণ নিরাপদ।
🔧
কনফিগারযোগ্য ডিলিমিটার
কমা, ট্যাব, সেমিকোলন এবং পাইপ ডিলিমিটারের মধ্যে স্যুইচ করুন। টুল ইনপুট ডিলিমিটার স্বয়ংক্রিয়ভাবে সনাক্ত করে এবং আপনাকে আউটপুটের জন্য ভিন্ন একটি বেছে নিতে দেয়, ক্রস-ফরম্যাট নরমালাইজেশন সহজ করে।
📋
এক-ক্লিকে কপি ও ডাউনলোড
ফরম্যাটকৃত CSV আপনার ক্লিপবোর্ডে কপি করুন বা ফাইল হিসেবে ডাউনলোড করুন। অতিরিক্ত সম্পাদনা ছাড়াই ডেটাবেস, স্প্রেডশিট বা ডেটা পাইপলাইনে আমদানির জন্য প্রস্তুত।

CSV ফরম্যাটারের ব্যবহারের ক্ষেত্র

ফ্রন্টএন্ড ডেভেলপমেন্ট
React বা Vue কম্পোনেন্টে মক ডেটা হিসেবে ব্যবহৃত CSV ফিক্সচার ফাইল পরিষ্কার করুন। সামঞ্জস্যপূর্ণ কোটিং ডেভেলপমেন্ট বিল্ডের সময় পার্সিং ব্যর্থতা রোধ করে।
ব্যাকএন্ড ডেটা ইনজেশন
তৃতীয়-পক্ষের API থেকে CSV এক্সপোর্ট আপনার ETL পাইপলাইনে দেওয়ার আগে নরমালাইজ করুন। হোয়াইটস্পেস ট্রিম করা ও ডিলিমিটার মানসম্পন্ন করা কলাম-শিফট বাগ রোধ করে।
DevOps এবং CI/CD
ভার্সন কন্ট্রোলে চেক করা CSV কনফিগ ফাইল বা সিড ডেটা ফরম্যাট করুন। সামঞ্জস্যপূর্ণ ফরম্যাটিং ডিফ নয়েজ কমায় এবং কোড রিভিউ দ্রুত করে।
QA ও পরীক্ষা
পরিচিত কোটিং ও ডিলিমিটার প্যাটার্ন সহ 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 (Tab-Separated Values) ফাইলে ব্যবহৃত। ট্যাব অক্ষর ফিল্ড ডেটায় খুব কমই দেখা যায়, তাই কোটিং খুব কম দরকার হয়। বায়োইনফরম্যাটিক্স ও ডেটাবেস এক্সপোর্টে সাধারণ।
সেমিকোলন (;)
ইউরোপীয় লোকেল 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 টেক্সট পার্স করে, ফিল্ডের চারপাশে কোটিং নরমালাইজ করে, অপ্রয়োজনীয় হোয়াইটস্পেস ট্রিম করে, এবং একটি সামঞ্জস্যপূর্ণ ডিলিমিটার ও লাইন-এন্ডিং স্টাইল দিয়ে ডেটা আবার ফরম্যাট করে আউটপুট দেয়। আউটপুট একটি পরিষ্কার CSV ফাইল যা RFC 4180 বা আপনার বেছে নেওয়া ফরম্যাটিং নিয়ম মেনে চলে।
CSV ফরম্যাটিং CSV ভ্যালিডেশন থেকে কীভাবে আলাদা?
ভ্যালিডেশন পরীক্ষা করে একটি CSV ফাইল একটি নিয়মের সেট মেনে চলে কিনা এবং ত্রুটি রিপোর্ট করে। ফরম্যাটিং আরও এগিয়ে যায়: এটি সেই সমস্যাগুলি ঠিক করতে ফাইল পুনরায় লেখে। একটি ভ্যালিডেটর আপনাকে বলে ৫ নম্বর রোতে একটি আনকোটেড কমা আছে। একটি ফরম্যাটার ফিল্ডের চারপাশে কোট যোগ করে এটি ঠিক করে।
CSV ফাইল আমদানি করার আগে কেন ফরম্যাট করতে হবে?
ডেটাবেস ইমপোর্ট টুল, ETL পাইপলাইন এবং স্প্রেডশিট সফটওয়্যার প্রত্যেকের CSV পার্সিং নিয়ম কিছুটা আলাদা। একটি আনকোটেড ফিল্ডে কমা থাকলে কঠোর পার্সারে দুটি কলামে বিভক্ত হয়ে যাবে। আমদানির আগে RFC 4180 অনুসরণ করতে CSV ফরম্যাট করলে এই কলাম-শিফট ত্রুটি ও নীরব ডেটা দুর্নীতি রোধ হয়।
এই টুল ব্যবহার করলে কি আমার ডেটা সার্ভারে পাঠানো হয়?
না। সমস্ত পার্সিং ও ফরম্যাটিং আপনার ব্রাউজারে JavaScript ব্যবহার করে ঘটে। আপনার CSV ডেটা আপনার মেশিনে থাকে এবং নেটওয়ার্কে কখনো পাঠানো হয় না। টুল ব্যবহার করার সময় আপনার ব্রাউজারের Network ট্যাব খুলে এটি যাচাই করতে পারেন।
ফরম্যাট করার সময় কি ডিলিমিটার পরিবর্তন করতে পারি?
হ্যাঁ। টুল ইনপুট ডিলিমিটার (কমা, ট্যাব, সেমিকোলন বা পাইপ) স্বয়ংক্রিয়ভাবে সনাক্ত করে এবং আপনাকে আউটপুটের জন্য ভিন্ন ডিলিমিটার বেছে নিতে দেয়। আঞ্চলিক CSV ফরম্যাটের মধ্যে রূপান্তর করতে বা TSV থেকে স্ট্যান্ডার্ড CSV-তে স্যুইচ করতে এটি কাজে আসে।
এমবেডেড নিউলাইন সহ কোটেড ফিল্ড টুল কীভাবে পরিচালনা করে?
RFC 4180 অনুযায়ী, নিউলাইন ধারণকারী ফিল্ড ডাবল কোটে মোড়ানো থাকতে হবে। ফরম্যাটার এই এমবেডেড নিউলাইনগুলি সংরক্ষণ করে এবং আশেপাশের কোট উপস্থিত আছে কিনা তা নিশ্চিত করে। ইনপুটে কোনো ফিল্ডে আনকোটেড নিউলাইন থাকলে, ফরম্যাটার পুনরায় সিরিয়ালাইজেশনের সময় এটি কোটে মোড়ায়।
এই টুল সর্বোচ্চ কত আকারের ফাইল পরিচালনা করতে পারে?
টুল আপনার ব্রাউজারে চলে বলে ব্যবহারিক সীমা আপনার ডিভাইসের উপলব্ধ মেমোরির উপর নির্ভর করে। আধুনিক মেশিনে ১০-২০ MB পর্যন্ত ফাইল সাধারণত সমস্যা ছাড়াই প্রক্রিয়া হয়। তার চেয়ে বড় ফাইলের জন্য csvkit বা Miller-এর মতো কমান্ড-লাইন টুল একটি ভালো বিকল্প।