Ruby:
การทำงานกับ CSV

วิธีทำ:

Ruby มีไลบรารี CSV มาให้เป็นค่าตั้งต้น ซึ่งทำให้การอ่านจากและเขียนไปยังไฟล์ CSV ง่ายขึ้น นี่คือวิธีที่คุณสามารถใช้ประโยชน์จากสิ่งนี้สำหรับงานทั่วไป:

การอ่านไฟล์ CSV

เพื่ออ่านจากไฟล์ CSV, คุณต้องมีไลบรารี CSV ก่อน จากนั้นคุณสามารถวนลูปท่องไปตามแถว หรืออ่านไปยัง array

require 'csv'

# การอ่านแต่ละแถวเป็น array
CSV.foreach("data.csv") do |row|
  puts row.inspect
end

# ผลลัพธ์สำหรับแต่ละแถวอาจจะแสดงเป็น: ["data1", "data2", "data3"]

เขียนไปยัง CSV

การเขียนไปยังไฟล์ CSV ก็ง่ายเช่นกัน คุณสามารถเพิ่มข้อมูลเข้าไปในไฟล์ที่มีอยู่แล้วหรือสร้างไฟล์ใหม่เพื่อเขียน

require 'csv'

CSV.open("output.csv", "wb") do |csv|
  csv << ["header1", "header2", "header3"]
  csv << ["value1", "value2", "value3"]
end

# สิ่งนี้สร้างหรือเขียนทับ 'output.csv' ด้วยหัวข้อและค่าที่ระบุ

การแยกสตริง CSV

บางครั้งคุณต้องการแยกข้อมูล CSV โดยตรงจากสตริง นี่คือวิธีการ:

require 'csv'

data = "name,age,city\nJohn Doe,29,New York\nJane Doe,31,Chicago"
csv = CSV.parse(data, headers: true)

csv.each do |row|
  puts "#{row['name']} - #{row['age']} - #{row['city']}"
end

# ผลลัพธ์ที่คาดหวัง:
# John Doe - 29 - New York
# Jane Doe - 31 - Chicago

การใช้ SmarterCSV

สำหรับงาน CSV ที่ซับซ้อนมากขึ้น, SmarterCSV gem สามารถเป็นเครื่องมือที่มีค่า ก่อนอื่น, ติดตั้ง gem:

gem install smarter_csv

จากนั้นคุณสามารถใช้มันในการจัดการไฟล์ขนาดใหญ่หรือทำการแยกและจัดการที่ซับซ้อนมากขึ้น:

require 'smarter_csv'

options = {}
data = SmarterCSV.process('large_data.csv', options)

data.each do |hash|
  puts hash.inspect
end

# สิ่งนี้จะอ่าน 'large_data.csv' และแสดงผลแต่ละแถวเป็น hash โดยอิงจากหัวข้อ

สรุป, ไลบรารี CSV ภายในของ Ruby รวมทั้ง gem ของบุคคลที่สามเช่น SmarterCSV, ให้การสนับสนุนที่แข็งแกร่งสำหรับการจัดการข้อมูล CSV, ทำให้สามารถทำงานด้านการประมวลผลและการจัดการข้อมูลได้อย่างมีประสิทธิภาพ.