วิธีใช้งาน
- วางข้อความ CSV เปิดไฟล์ .csv หรือ .tsv หรือกด “ลองตัวอย่าง”
- ใช้ “ตรวจหาอัตโนมัติ” ต่อไปหรือเลือกตัวคั่นเอง และระบุว่าแถวแรกมีชื่อคอลัมน์หรือไม่
- เลือกเปิดการตรวจหาตัวเลข บูลีน และ null ได้ตามต้องการ แล้วเลือกรูปแบบผลลัพธ์เป็นออบเจ็กต์หรืออาร์เรย์
- คัดลอก JSON หรือดาวน์โหลดเป็นไฟล์ .json
วิธีการทำงาน
ตัวแยกวิเคราะห์นี้ทำตาม RFC 4180 ซึ่งเป็นข้อกำหนดของ CSV: ฟิลด์สามารถครอบด้วยเครื่องหมายอัญประกาศคู่ได้ ฟิลด์ที่ครอบด้วยเครื่องหมายอัญประกาศอาจมีตัวคั่นและการขึ้นบรรทัดใหม่ได้ และเครื่องหมายอัญประกาศคู่สองตัวภายในฟิลด์ที่ครอบอยู่จะหมายถึงอักขระอัญประกาศหนึ่งตัว การขึ้นบรรทัดใหม่อาจเป็น CRLF (Windows), LF (macOS, Linux) หรือ CR และการขึ้นบรรทัดใหม่ท้ายไฟล์จะไม่สร้างระเบียนว่าง ระบบจะข้ามบรรทัดว่างทั้งหมด และลบเครื่องหมายลำดับไบต์ที่ต้นไฟล์ ซึ่ง Excel มักเพิ่มไว้ หากฟิลด์ที่ครอบด้วยเครื่องหมายอัญประกาศไม่มีเครื่องหมายปิด ระบบจะแจ้งข้อผิดพลาดพร้อมบรรทัดที่ฟิลด์เริ่มต้น เพราะการคาดเดาอาจทำให้ข้อมูลที่เหลือทั้งไฟล์ถูกรวมเป็นเซลล์เดียวโดยไม่รู้ตัว
การตรวจหาอัตโนมัติจะลองใช้จุลภาค อัฒภาค แท็บ และ pipe กับแถวแรก ๆ แล้วเลือกตัวคั่นที่ทำให้จำนวนคอลัมน์สม่ำเสมอ หากมีแถวส่วนหัว แต่ละระเบียนจะกลายเป็นออบเจ็กต์ที่ใช้ชื่อคอลัมน์เป็นคีย์ ชื่อที่ว่างจะกลายเป็น column_1, column_2… ส่วนชื่อที่ซ้ำจะเพิ่มส่วนต่อท้าย เช่น id_2 แถวที่มีฟิลด์น้อยกว่าแถวส่วนหัวจะเติมค่าว่างให้ ส่วนฟิลด์ที่เกินมาจะได้รับชื่อคอลัมน์เพิ่ม
โดยค่าเริ่มต้น ทุกค่าจะคงเป็นสตริง ซึ่งเป็นตัวเลือกที่ปลอดภัย เพราะรหัสไปรษณีย์อย่าง 01234 หมายเลขโทรศัพท์ และ ID จะยังคงมีเลขศูนย์นำหน้า เมื่อเปิดการตรวจหาชนิดข้อมูล ค่าที่เขียนตรงตามรูปแบบตัวเลขของ JSON จะถูกแปลงเป็นตัวเลข (ยกเว้น 007, 1,5 และจำนวนเต็มที่เกิน 2^53) ส่วน true และ false ไม่ว่าจะใช้อักษรตัวพิมพ์เล็กหรือใหญ่จะกลายเป็นบูลีน และ null หรือเซลล์ว่างจะกลายเป็น null วันที่จะคงเป็นข้อความ
ตัวอย่าง
ส่งออกจากสเปรดชีต
id,name,price\n1,Desk,149.90 จะแปลงเป็น [{"id":"1","name":"Desk","price":"149.90"}] เมื่อเปิดการตรวจหาชนิดข้อมูล จะแปลงเป็น {"id":1,"name":"Desk","price":149.9}
ไฟล์ Excel จากยุโรป
ไฟล์ที่บันทึกจาก Excel ในเยอรมนีใช้เครื่องหมายอัฒภาค: Name;Preis\nTisch;149,90 ระบบตรวจหาอัตโนมัติจะเลือกเครื่องหมายอัฒภาค และ 149,90 จะยังคงเป็นสตริง "149,90" เพราะไม่ใช่ตัวเลขตามรูปแบบ JSON
เซลล์ที่มีการขึ้นบรรทัดใหม่
เซลล์ที่อยู่ซึ่งเขียนเป็น "221B Baker Street London" (ครอบด้วยเครื่องหมายอัญประกาศและกินพื้นที่สองบรรทัด) จะยังคงเป็นค่าเดียว คือ "221B Baker Street\nLondon" ไม่เริ่มแถวใหม่
คำถามที่พบบ่อย
ทำไมตัวเลขของฉันใน JSON จึงเป็นสตริง
CSV ไม่มีชนิดข้อมูล โดยค่าเริ่มต้นทุกค่าจึงจะถูกเก็บเป็นข้อความตามที่เขียนไว้ เปิด “ตรวจหาตัวเลข true/false และ null” เพื่อแปลงค่าที่มีรูปแบบเหมือนตัวเลข ระบบจะเก็บเลขศูนย์นำหน้าและจุลภาคที่ใช้เป็นตัวคั่นทศนิยมไว้เป็นข้อความ เพื่อป้องกันข้อมูลเปลี่ยนแปลง
ถ้าแถวมีจำนวนคอลัมน์มากกว่าหรือน้อยกว่าแถวส่วนหัวจะเกิดอะไรขึ้น
ค่าที่ขาดหายจะกลายเป็นสตริงว่าง (หรือ null เมื่อเปิดการตรวจหาชนิดข้อมูล) ส่วนค่าที่เกินมาจะถูกเก็บไว้ในคีย์เพิ่มเติมชื่อ column_N จึงไม่มีข้อมูลถูกละทิ้ง
อ่านไฟล์ Excel .xlsx ได้ไหม
ไม่ได้ รองรับเฉพาะ CSV และ TSV แบบข้อความ ใน Excel หรือ Google Sheets ให้เลือก File › Save as / Download › CSV ก่อน แล้วเปิดไฟล์นั้นที่นี่
แปลงไฟล์ได้ใหญ่แค่ไหน
ไฟล์ขนาดหลายเมกะไบต์จะแปลงเสร็จในทันทีบนคอมพิวเตอร์ตั้งโต๊ะ ขนาดไฟล์ที่แปลงได้ขึ้นอยู่กับหน่วยความจำของอุปกรณ์ เพราะไฟล์ทั้งไฟล์และผลลัพธ์ JSON จะถูกเก็บไว้ในแท็บเบราว์เซอร์
ความเป็นส่วนตัว
ระบบอ่านและแปลง CSV ในเบราว์เซอร์ของคุณเท่านั้น ไฟล์ที่เปิดจะไม่ถูกอัปโหลด และไม่มีการจัดเก็บหรือส่งข้อมูลไปยังระบบวิเคราะห์