ToolDeck

ตัวจัดรูปแบบ CSV

จัดรูปแบบและทำให้ข้อมูล CSV เป็นมาตรฐานพร้อมตัวเลือกตัวคั่นแบบกำหนดเอง

ลองตัวอย่าง

CSV อินพุต

CSV ที่จัดรูปแบบแล้ว

ประมวลผลในเครื่อง · ปลอดภัยในการวางข้อมูลลับ
CSV ที่จัดรูปแบบแล้วจะปรากฏที่นี่…
ตัวคั่นเอาต์พุต:

การจัดรูปแบบ CSV คืออะไร?

การจัดรูปแบบ CSV (Comma-Separated Values) คือกระบวนการทำให้ข้อความตารางดิบเป็นมาตรฐาน เพื่อให้ตัวคั่น การอ้างอิง ช่องว่าง และการสิ้นสุดบรรทัดเป็นไปตามกฎที่สอดคล้องกัน RFC 4180 ซึ่งเผยแพร่ในปี 2005 กำหนดมาตรฐาน CSV ที่ได้รับการยอมรับอย่างแพร่หลายที่สุด ได้แก่ ฟิลด์คั่นด้วยเครื่องหมายจุลภาค ระเบียนสิ้นสุดด้วย CRLF และฟิลด์ที่มีเครื่องหมายจุลภาค เครื่องหมายอัญประกาศคู่ หรือการขึ้นบรรทัดใหม่จะถูกล้อมรอบด้วยเครื่องหมายอัญประกาศคู่ ตัวจัดรูปแบบ CSV รับข้อมูล CSV ที่ไม่เป็นระเบียบหรือไม่สอดคล้องกัน แล้วเขียนใหม่ให้ตรงตามแบบแผนเหล่านี้

ในความเป็นจริง ไฟล์ CSV มักไม่มาในรูปแบบที่สะอาด การส่งออกจากสเปรดชีตของ Excel, Google Sheets และยูทิลิตีดัมป์ฐานข้อมูลแต่ละรายการใช้กลยุทธ์การอ้างอิงที่แตกต่างกัน จัดการช่องว่างแตกต่างกัน และอาจใช้เครื่องหมายเซมิโคลอนหรือแท็บแทนเครื่องหมายจุลภาค เมื่อนำไฟล์เหล่านี้เข้าสู่ตัวแยกวิเคราะห์ที่คาดหวังอินพุต RFC 4180 ที่เคร่งครัด ผลลัพธ์มักเป็นแถวที่เสีย คอลัมน์เลื่อน หรือข้อมูลสูญหายโดยไม่มีการแจ้งเตือน การจัดรูปแบบก่อนการประมวลผลช่วยตรวจพบปัญหาเหล่านี้ตั้งแต่เนิ่นๆ

ตัวจัดรูปแบบ CSV แตกต่างจากตัวแปลง CSV การจัดรูปแบบเก็บข้อมูลไว้ในรูปแบบ CSV โดยจะปรับการอ้างอิงให้เป็นมาตรฐาน ตัดช่องว่างที่ไม่จำเป็น จัดคอลัมน์ใหม่ และเปลี่ยนตัวคั่นตามต้องการ ส่วนการแปลงจะเปลี่ยนรูปแบบทั้งหมด โดยสร้างเอาต์พุตเป็น JSON, HTML, SQL หรือ Markdown

เหตุใดจึงควรใช้ตัวจัดรูปแบบ CSV นี้?

เครื่องมือนี้แยกวิเคราะห์และจัดเรียง CSV ใหม่ทั้งหมดในเบราว์เซอร์ ข้อมูลของคุณไม่เคยออกจากเครื่องของคุณ

จัดรูปแบบได้ทันที
วาง CSV แล้วดูผลลัพธ์ที่สะอาดได้ทันที ตัวจัดรูปแบบแยกวิเคราะห์และจัดเรียงใหม่ในเบราว์เซอร์ขณะที่คุณพิมพ์
🔒
การประมวลผลที่ให้ความสำคัญกับความเป็นส่วนตัว
การแยกวิเคราะห์และการจัดรูปแบบทั้งหมดเกิดขึ้นในแท็บเบราว์เซอร์ของคุณ ไม่มีการส่งข้อมูลผ่านเครือข่าย ปลอดภัยสำหรับชุดข้อมูลที่เป็นกรรมสิทธิ์ ข้อมูลรับรองความถูกต้อง และ PII ที่ต้องไม่ออกจากเครื่องของคุณ
🔧
ตัวคั่นที่ปรับแต่งได้
สลับระหว่างตัวคั่นแบบเครื่องหมายจุลภาค แท็บ เซมิโคลอน และไปป์ เครื่องมือตรวจจับตัวคั่นอินพุตโดยอัตโนมัติและให้คุณเลือกตัวคั่นที่แตกต่างสำหรับเอาต์พุต ทำให้การทำให้เป็นมาตรฐานข้ามรูปแบบเป็นเรื่องง่าย
📋
คัดลอกและดาวน์โหลดด้วยคลิกเดียว
คัดลอก CSV ที่จัดรูปแบบแล้วไปยังคลิปบอร์ดหรือดาวน์โหลดเป็นไฟล์ พร้อมนำเข้าสู่ฐานข้อมูล สเปรดชีต หรือไปป์ไลน์ข้อมูลโดยไม่ต้องแก้ไขเพิ่มเติม

กรณีการใช้งานตัวจัดรูปแบบ CSV

การพัฒนา Frontend
ทำความสะอาดไฟล์ CSV ที่ใช้เป็นข้อมูลจำลองในคอมโพเนนต์ React หรือ Vue การอ้างอิงที่สอดคล้องกันป้องกันความล้มเหลวในการแยกวิเคราะห์ระหว่างการสร้างโปรแกรม
การรับข้อมูลในฝั่ง Backend
ทำให้การส่งออก CSV จาก API ของบุคคลที่สามเป็นมาตรฐานก่อนนำเข้าสู่ ETL pipeline ของคุณ การตัดช่องว่างและการปรับมาตรฐานตัวคั่นป้องกันบักการเลื่อนคอลัมน์
DevOps และ CI/CD
จัดรูปแบบไฟล์การกำหนดค่า CSV หรือข้อมูลเริ่มต้นที่บันทึกไว้ในระบบควบคุมเวอร์ชัน การจัดรูปแบบที่สอดคล้องกันลดความซับซ้อนของ diff และทำให้การตรวจสอบโค้ดรวดเร็วขึ้น
QA และการทดสอบ
เตรียมไฟล์ fixture ทดสอบ CSV ด้วยรูปแบบการอ้างอิงและตัวคั่นที่ทราบล่วงหน้า ไฟล์อินพุตที่สร้างซ้ำได้ช่วยให้เขียนการยืนยันผลลัพธ์ตัวแยกวิเคราะห์ได้ง่ายขึ้น
วิศวกรรมข้อมูล
ประมวลผลล่วงหน้าดัมป์ CSV จากฐานข้อมูลเก่าก่อนโหลดเข้าสู่คลังข้อมูลสมัยใหม่ การแก้ไขปัญหาการอ้างอิงและการไม่ตรงกันของตัวคั่นช่วยประหยัดเวลาในการแก้จุดบกพร่องหลายชั่วโมง
การเรียนรู้และการศึกษา
ทดลองกับกฎการอ้างอิง RFC 4180 โดยวางอินพุตต่างๆ และสังเกตว่าตัวจัดรูปแบบทำให้เป็นมาตรฐานอย่างไร วิธีปฏิบัติที่ดีเพื่อทำความเข้าใจกรณีพิเศษของ CSV

กฎการอ้างอิงและการ Escape ของ 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 เป็นไปตามชุดกฎและรายงานข้อผิดพลาดหรือไม่ การจัดรูปแบบไปไกลกว่านั้น โดยเขียนไฟล์ใหม่เพื่อแก้ไขปัญหาเหล่านั้น ตัวตรวจสอบแจ้งให้คุณทราบว่าแถวที่ 5 มีเครื่องหมายจุลภาคที่ไม่ได้อ้างอิง ส่วนตัวจัดรูปแบบจะแก้ไขด้วยการเพิ่มเครื่องหมายอ้างอิงรอบฟิลด์
เหตุใดฉันจึงต้องจัดรูปแบบไฟล์ CSV ก่อนนำเข้า?
เครื่องมือนำเข้าฐานข้อมูล ETL pipeline และซอฟต์แวร์สเปรดชีตแต่ละรายการมีกฎการแยกวิเคราะห์ CSV ที่แตกต่างกันเล็กน้อย ฟิลด์ที่ไม่มีเครื่องหมายอ้างอิงและมีเครื่องหมายจุลภาคอยู่ภายในจะถูกแยกเป็นสองคอลัมน์ในตัวแยกวิเคราะห์ที่เข้มงวด การจัดรูปแบบ CSV ให้เป็นไปตาม RFC 4180 ก่อนนำเข้าป้องกันข้อผิดพลาดการเลื่อนคอลัมน์และการสูญหายของข้อมูลโดยไม่มีการแจ้งเตือน
ข้อมูลของฉันถูกส่งไปยังเซิร์ฟเวอร์เมื่อฉันใช้เครื่องมือนี้หรือไม่?
ไม่ การแยกวิเคราะห์และการจัดรูปแบบทั้งหมดเกิดขึ้นในเบราว์เซอร์ของคุณโดยใช้ JavaScript ข้อมูล CSV ของคุณอยู่บนเครื่องของคุณและไม่เคยถูกส่งผ่านเครือข่าย คุณสามารถยืนยันได้โดยเปิดแท็บ Network ของเบราว์เซอร์ขณะใช้เครื่องมือ
ฉันสามารถเปลี่ยนตัวคั่นเมื่อจัดรูปแบบได้หรือไม่?
ได้ เครื่องมือตรวจจับตัวคั่นอินพุตโดยอัตโนมัติ (เครื่องหมายจุลภาค แท็บ เซมิโคลอน หรือไปป์) และให้คุณเลือกตัวคั่นที่แตกต่างสำหรับเอาต์พุต สิ่งนี้มีประโยชน์เมื่อแปลงระหว่างรูปแบบ CSV ตามภูมิภาคหรือสลับจาก TSV เป็น CSV มาตรฐาน
เครื่องมือจัดการฟิลด์ที่มีการขึ้นบรรทัดใหม่อย่างไร?
ตาม RFC 4180 ฟิลด์ที่มีการขึ้นบรรทัดใหม่จะต้องอยู่ในเครื่องหมายอัญประกาศคู่ ตัวจัดรูปแบบรักษาการขึ้นบรรทัดใหม่ที่ฝังอยู่เหล่านี้และตรวจสอบว่ามีเครื่องหมายอ้างอิงล้อมรอบ หากฟิลด์มีการขึ้นบรรทัดใหม่ที่ไม่มีเครื่องหมายอ้างอิงในอินพุต ตัวจัดรูปแบบจะล้อมรอบด้วยเครื่องหมายอ้างอิงระหว่างการจัดเรียงใหม่
ขนาดไฟล์สูงสุดที่เครื่องมือนี้รองรับคือเท่าใด?
เนื่องจากเครื่องมือทำงานในเบราว์เซอร์ ขีดจำกัดในทางปฏิบัติขึ้นอยู่กับหน่วยความจำที่พร้อมใช้งานของอุปกรณ์ ไฟล์ขนาดถึง 10-20 MB โดยทั่วไปประมวลผลได้โดยไม่มีปัญหาบนเครื่องสมัยใหม่ สำหรับไฟล์ที่ใหญ่กว่านั้น เครื่องมือบรรทัดคำสั่งเช่น csvkit หรือ Miller เป็นตัวเลือกที่ดีกว่า