Visual Basic for Applications:
การทำงานกับ CSV
วิธีการ:
Visual Basic for Applications (VBA) ทำให้การทำงานกับไฟล์ CSV เป็นเรื่องง่ายด้วยฟังก์ชันและเมธอดที่มีให้ตั้งแต่ต้นที่ช่วยให้สามารถอ่านและเขียนไปยังไฟล์เหล่านี้ได้อย่างไร้รอยต่อ ด้านล่างคือตัวอย่างที่แสดงถึงการดำเนินการพื้นฐานกับไฟล์ CSV
การอ่านไฟล์ CSV:
Sub ReadCSV()
Dim filePath As String
filePath = "C:\example.csv"
Open filePath For Input As #1
Do Until EOF(1)
Dim line As String
Line Input #1, line
Dim dataFields() As String
dataFields = Split(line, ",")
'ประมวลผลอาร์เรย์ dataFields ตามที่ต้องการ
Debug.Print Join(dataFields, ";") 'ตัวอย่างผลลัพธ์ที่แสดงการเปลี่ยนจากจุลภาคเป็นอัฒภาค
Loop
Close #1
End Sub
การเขียนไปยังไฟล์ CSV:
Sub WriteCSV()
Dim filePath As String
filePath = "C:\output.csv"
Dim dataToWrite As String
dataToWrite = "ID,Name,Age" & vbCrLf & "1,John Doe,30" & vbCrLf & "2,Jane Doe,29"
Open filePath For Output As #1
Print #1, dataToWrite
Close #1
End Sub
ตัวอย่างผลลัพธ์ใน output.csv
:
ID,Name,Age
1,John Doe,30
2,Jane Doe,29
การศึกษาลึก
ในอดีต ไฟล์ CSV เป็นวิธีที่ตรงไปตรงมาในการจัดเก็บข้อมูลตารางในรูปแบบข้อความ ความเรียบง่ายของโครงสร้างของมัน ที่ทุกบรรทัดสอดคล้องกับหนึ่งรายการข้อมูลและแต่ละฟิลด์ภายในรายการถูกแยกด้วยจุลภาค เป็นทั้งจุดแข็งและข้อจำกัดของ CSV รูปแบบนี้ไม่รองรับประเภทข้อมูลโดยเนื้อแท้ ซึ่งหมายความว่าข้อมูลทั้งหมดจะถูกเก็บเป็นสตริง และความรับผิดชอบในการแปลงข้อมูลเป็นประเภทที่ถูกต้องตกอยู่กับโปรแกรมเมอร์
ใน Visual Basic for Applications การจัดการกับไฟล์ CSV ส่วนใหญ่ทำผ่านการดำเนินการไฟล์พื้นฐาน ตามที่แสดงในตัวอย่างก่อนหน้านี้ ไม่มีการรองรับการแยกวิเคราะห์ CSV โดยตรงเช่นเดียวกับในภาษาที่ทันสมัยกว่า (เช่น โมดูล csv ของ Python) ที่มอบการควบคุมและความสะดวกมากขึ้นในการจัดการข้อมูล CSV
สำหรับการดำเนินการที่ซับซ้อนกว่าหรือเมื่อทำงานกับไฟล์ CSV ขนาดใหญ่ โปรแกรมเมอร์อาจหาทางเลือกที่ดีกว่านอกเหนือจาก VBA บริสุทธิ์ เช่น การใช้ไลบรารีภายนอกหรือการใช้ภาษาโปรแกรมมิ่งอื่นที่มีความสามารถในการจัดการกับ CSV ที่ซับซ้อนขึ้น อย่างไรก็ตามสำหรับงานเกี่ยวกับไฟล์ CSV ที่เรียบง่าย VBA มักเพียงพอและง่ายต่อการใช้งาน โดยมอบวิธีแก้ปัญหาที่รวดเร็วสำหรับแอพพลิเคชั่นที่ใช้ Excel หรือการอัตโนมัติซอฟต์แวร์ของ Microsoft Office อื่นๆ