CSV เป็นรูปแบบที่นิยมใช้กันอย่างแพร่หลาย โดยทั่วไปจำเป็นสำหรับซอฟต์แวร์วิเคราะห์ข้อมูลต่างๆ นอกจากนี้ยังมีความยืดหยุ่นสูง จัดระเบียบและแก้ไขได้ง่าย ด้วยลักษณะยอดนิยมนี้ คุณอาจพบสถานการณ์ที่ต้องแปลงชุดข้อมูลจาก Excel เป็นรูปแบบ CSV เพื่อใช้ในสถานการณ์ต่างๆ ในบทช่วยสอนนี้ จะแสดงวิธีแปลงไฟล์ Excel เป็น CSV แบบอัตโนมัติ
หากต้องการลองทำตามขั้นตอน ได้แนบไฟล์พร้อมชุดข้อมูลสาธิตและโค้ด VBA ไว้ด้านล่าง ลองดาวน์โหลดและฝึกปฏิบัติพร้อมกัน
CSV คืออะไร?
CSV หรือ comma-separated values คือรูปแบบไฟล์ที่ค่าถูกเก็บเป็นสตริง โดยใช้จุลภาค (comma) เป็นตัวคั่น (delimiter) แยกค่าต่างๆ 雖然名字聽起來簡單,但實際上可能比較複雜。附加大量數據後,文件可能會變得很混亂。但某些軟件或編程語言(如 Python 的 Pandas 庫)更喜歡使用這些文件作為輸入。
ข้อดีของการใช้ไฟล์ CSV ได้แก่:
- ได้รับการยอมรับอย่างกว้างขวางจากผู้ใช้แพลตฟอร์มต่างๆ
- จัดระเบียบและแก้ไขง่าย
- ใช้ร่วมกับโปรแกรมสเปรดชีตหลักเกือบทุกตัว เช่น Microsoft Excel หรือ Google Spreadsheet
- ซอฟต์แวร์ธุรกิจต่างๆ ก็ใช้รูปแบบนี้
ข้อเสียหลักคือ ไฟล์ CSV จำกัดได้แค่หนึ่งสเปรดชีทเท่านั้น ในขณะที่ไฟล์ .xlsx ของ Microsoft Excel สามารถมีหลายสเปรดชีท ที่มีชุดข้อมูลหลายชุดพร้อมกันได้
3 วิธีแปลงไฟล์ Excel เป็น CSV แบบอัตโนมัติ
Excel มีวิธีแปลงสเปรดชีทเป็น CSV หลายวิธี แม้วิธีหลักและนิยมมากที่สุดคือคำสั่ง Save As แต่คุณอาจต้องใช้วิธีอื่น ขึ้นอยู่กับอักขระในชุดข้อมูล หรือว่าต้องการแปลงหลายสเปรดชีทพร้อมกันหรือไม่
เพื่อความเข้าใจง่าย จะแบ่งวิธีต่างๆ ออกเป็นส่วนย่อย พร้อมอธิบายข้อดีข้อเสียของแต่ละวิธี ติดตามเพื่อดูว่าทุกวิธีทำงานอย่างไร หรือหาวิธีที่ต้องการจากตาราง
1. แปลงไฟล์ Excel เป็น CSV อัตโนมัติด้วยคำสั่ง Save As
นี่คือวิธีที่เหมาะสมและนิยมใช้มากที่สุดในการแปลงไฟล์ Excel เป็น CSV อัตโนมัติ หากสเปรดชีทของคุณไม่มีอักขระ Unicode ให้ใช้วิธีนี้เลย เนื่องจากเราสามารถใช้คุณสมบัติ Save As ของ Microsoft แปลงไฟล์เป็นรูปแบบอื่นได้ จึงสามารถใช้แปลง Excel เป็น CSV อัตโนมัติเช่นกัน
ทำตามขั้นตอนด้านล่างสำหรับคำแนะนำโดยละเอียด สำหรับการสาธิต ใช้ชุดข้อมูลดังนี้

ขั้นตอน:
- เลือกสเปรดชีทที่ต้องการแปลง (หากมีหลายสเปรดชีทในไฟล์ Excel)
- ในริบบอน คลิกแท็บ File

- คลิก Save As สามารถข้าม 2 ขั้นตอนก่อนหน้าโดยกด F12 เพื่อเปิดหน้าต่าง Save As ได้เลย

- ในหน้าต่าง Save As เลือกตำแหน่งบันทึก และเลือก CSV (Comma delimited) ใน Save as type สามารถเลือก CSV UTF-8 ได้เช่นกัน ผลลัพธ์เหมือนกัน

- คลิก Save
- หากมีหน้าต่างเตือนว่าจะแปลงได้แค่หนึ่งสเปรดชีท (เกิดขึ้นเมื่อมีหลายสเปรดชีท) ให้คลิก OK

ไฟล์ Excel จะถูกแปลงเป็น CSV อัตโนมัติ

สามารถเปิดดูใน Excel ได้ จะแสดงข้อมูลโดยไม่มีรูปแบบต่างๆ

อ่านเพิ่มเติม: แปลง Excel เป็น CSV คั่นจุลภาค (2 วิธีง่าย)
2. แปลงไฟล์ Excel เป็น CSV พร้อมอักขระพิเศษ
หากทำตามวิธีก่อนหน้าด้วยสเปรดชีทที่มีอักขระ Unicode อาจเกิดปัญหาเมื่อนำข้อมูลกลับเข้าไปอีก การบันทึกเป็น CSV (comma delimited) จะทำให้อักขระที่ไม่ใช่ ASCII บิดเบือน ดังนั้นหากมีอักขระพิเศษในข้อมูล ให้ทำตาม 2 วิธีนี้เพื่อแปลง Excel เป็น CSV อัตโนมัติโดยไม่บิดเบือนอักขระ
สำหรับทั้ง 2 วิธี ใช้ชุดข้อมูลที่มีตัวอักษรจีนในชื่อภาษาจีนมานดาริน

ขณะแปลง Excel เป็น CSV อัตโนมัติ สามารถแปลงเป็นรูปแบบ Unicode ทั้ง UTF-8 และ UTF-16 ความแตกต่างหลักคือ UTF-8 เป็นการเข้ารหัสที่กะทัดรัดกว่า และเข้ารหัสอักขระทั่วไปรวมถึงอักษรอังกฤษและตัวเลขด้วย 8 บิต ส่วน UTF-16 เข้ารหัสอย่างน้อย 16 บิตต่ออักขระ แม้จะแปลงเป็นอันไหนก็ได้ผลลัพธ์ CSV คล้ายกัน แตสำหรับอักขระเอเชียอย่างนี้ UTF-16 แนะนำให้ใช้
2.1 บันทึกเป็น CSV UTF-8
UTF-8 กับอักขระ ASCII มีการเข้ารหัสเหมือนไฟล์ ASCII ดังนั้นหากไม่มีอักขระ Unicode มากนักที่ต้องแปลงเป็น CSV ควรแปลงเป็น UTF-8
ขั้นตอนแปลง Excel เป็น CSV UTF-8 อัตโนมัติ:
- เลือกสเปรดชีทที่ต้องการแปลง (หากมีหลายสเปรดชีท)
- คลิกแท็บ File จากริบบอน

- คลิก Save As หรือกด F12 ได้เลย

- ในหน้าต่าง Save As เลือกตำแหน่งบันทึก และเลือก CSV UTF-8 (Comma Delimited) ในช่อง Save as type

- คลิก Save
- หากมีหลายสเปรดชีท อาจมีหน้าต่างเตือนว่าแปลงได้แค่หนึ่งสเปรดชีท ให้คลิก OK

วิธีนี้แปลง Excel เป็น CSV อัตโนมัติพร้อมอักขระพิเศษได้โดยไม่บิดเบือนอักขระ
ไฟล์ CSV ที่ได้จะประมาณนี้ รักษาข้อมูลทั้งหมดไว้

ถ้าเปิดด้วย Excel จะเป็นแบบนี้

2.2 บันทึกเป็น CSV UTF-16
สำหรับอักขระเอเชียเหมือนในชุดข้อมูล แนะนำให้ใช้ UTF-16 ข้อเสียคือใช้ไบต์มากกว่า UTF-8 และไม่เข้ากันได้เต็มที่กับไฟล์ ASCII
อย่างไรก็ตาม หากต้องการแปลง Excel เป็น CSV UTF-16 อัตโนมัติ ทำตามขั้นตอนด้านล่าง
ขั้นตอน:
- เลือกสเปรดชีทที่ต้องการแปลง (หากมีหลายสเปรดชีท)
- ไปที่แท็บ File บนริบบอน

- เลือก Save As หรือกด F12 ได้เลย

- ในหน้าต่าง Save As เลือกตำแหน่ง และเลือก Save as type เป็น Unicode Text

- คลิก Save จะบันทึกเป็นไฟล์ข้อความ เปิดด้วยโปรแกรมแก้ไขข้อความ เช่น Notepad จะพบว่าข้อมูลคั่นด้วย Tabs

- คัดลอกช่องว่างแท็บจาก Notepad

- เปิดกล่อง Find and Replace ใน Notepad โดยกด Ctrl+H
- ในช่อง Find what วางช่องว่างแท็บ
- ในช่อง Replace with ใส่จุลภาค (,)
- คลิก Replace All

- ปิดกล่อง ทุกช่องว่างแท็บจะถูกแทนที่ด้วยจุลภาค ได้ไฟล์ข้อความคั่นจุลภาค

- เปลี่ยนนามสกุลไฟล์เป็น .csv ด้วยตนเอง

ดังนี้ก็แปลง Excel เป็น CSV UTF-16 อัตโนมัติได้แล้ว
อ่านเพิ่มเติม: บันทึก Excel เป็น CSV พร้อมเครื่องหมายคำพูดคู่ (3 วิธีง่ายที่สุด)
3. แปลงไฟล์ Excel เป็น CSV พร้อมหลายชีท
วิธีก่อนหน้าแปลงได้แค่สเปรดชีทเดียวต่อไฟล์ CSV แต่บางครั้งมีหลายสเปรดชีทในไฟล์ Excel และต้องแปลงทุกชีท Microsoft Visual Basic for Applications (VBA) มีคำตอบสำหรับกรณีนี้
เพื่อใช้โค้ด VBA ต้องมีแท็บ Developer บนริบบอน เปิดใช้งานแท็บ Developer หากยังไม่มี
สำหรับการสาธิต ใช้ไฟล์ที่มี 2 ชุดข้อมูลกล่าวมา อยู่ในชีทต่างกัน (หากดาวน์โหลดไฟล์ต้นบทความ จะได้ไฟล์นี้)

ทำตามขั้นตอนหากต้องการแปลงหลายชีทเป็น CSV แบบแบทช์ (batch)
ขั้นตอน:
- ไปที่แท็บ Developer เลือก Visual Basic จากกลุ่ม Code

- ในหน้าต่าง VBA เลือก Insert แล้วเลือก Module จากเมนูดรอปดาวน์

- เขียนโค้ดต่อไปนี้ในโมดูล:
Sub Batch_Convert_CSV() Dim wsht As Worksheet Dim file_path As String Application.ScreenUpdating = False file_path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1) For Each wsht In Worksheets wsht.Copy ActiveWorkbook.SaveAs Filename:=file_path & "_" & wsht.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Close False Next Application.ScreenUpdating = True End Sub
- เขียนโค้ดเสร็จ บันทึกไฟล์ และกด F5 เพื่อรันโค้ด
ทุกสเปรดชีทจะถูกแปลงเป็นไฟล์ CSV แยกกัน ในไดเรกทอรี่ของไฟล์ Excel หลัก
นี่คือไฟล์ CSV ที่แปลงจากสเปรดชีทแรก

และนี่คือสเปรดชีทที่สอง

หมายเหตุ: การแปลงแบทช์ก็จะบิดเบือนอักขระ Unicode ตามที่กล่าวในวิธีที่ 2 หากมีอักขระพิเศษ ให้ใช้วิธีที่ 2 แทน
อ่านเพิ่มเติม: วิธีใช้ Macro แปลงไฟล์ Excel หลายไฟล์เป็น CSV
สรุป
นี่คือวิธีต่างๆ สำหรับสถานการณ์ต่างๆ ในการแปลงไฟล์ Excel เป็น CSV อัตโนมัติ หวังว่าบทความนี้จะมีประโยชน์และให้ข้อมูลที่น่าสนใจ หากมีคำถามหรือข้อเสนอแนะ แจ้งได้ด้านล่าง สำหรับคำแนะนำโดยละเอียดอย่างนี้ โปรดเยี่ยมชม Exceldemy.com
บทความที่เกี่ยวข้อง
- วิธีแปลงไฟล์ Excel หลายไฟล์เป็น CSV (3 วิธีที่เหมาะสม)
- Macro แปลง Excel เป็นไฟล์ข้อความคั่น Pipe (3 วิธี)
- วิธีแปลงไฟล์ Excel เป็นไฟล์ข้อความคั่นจุลภาค (3 วิธี)
- [แก้ไขแล้ว!] Excel บันทึก CSV ไม่ได้ด้วยจุลภาค (7 วิธีแก้ไข)
- วิธีแปลง Excel เป็น CSV โดยไม่ต้องเปิดไฟล์ (4 วิธีง่าย)