CsvHelper from nuget

Read File csv ด้วย CsvHelper Library

เจอปัญหาในการเขียนโปรแกรมเพื่อ import ข้อมูลจาก file นามสกุล .csv ซึ่งโดยทั่วไปที่เจอมาก็ขั้นข้อมูลด้วยเครื่อง (|) หรือที่เรียกว่า อักขระไปป์

Install CsvHelper ผ่าน Package Manager Console
CsvHelper ถูกติดตั้งเข้ามาในโปรเจก
ตัวอย่าง Source Code

ตัวอย่างข้อมูล แบบที่ 1

Wanchai1|Leo1|Nadonmai1
Wanchai2|Leo2|Nadonmai2
Wanchai3|Leo3|Nadonmai3
Wanchai4|Leo4|Nadonmai4
Wanchai5|Leo5|Nadonmai5

จะสังเกตุเห็นว่ามีเครื่องหมาย (|) ขั้นระหว่างข้อมูลอยู่ 2 ตัวแสดงว่าข้อมูลจะถูกแบ่งออกเป็น 3 ช่อง สมมติช่องที่ 1 คือ firstName ช่องที่ 2 คือ lastName ช่องที่ 3 คือ address พอเราเขียนโปรแกรมเพื่อ import ข้อมูลเข้าสู่ Database มันก็จะเข้าตามที่เราได้ตัดเครื่องหมาย (|) ออกไปก็จะได้ 5 แถวเข้าถูกต้อง

ผลการรันโปรแกรมตัวอย่างที่ 1

ตัวอย่างข้อมูลที่ 2

Wanchai1|Leo1|Nadon|mai1
Wanchai2|Leo2|Nadonmai2
Wanchai3|Leo3|Nadon|mai3
Wanchai4|Leo4|Nadonmai4
Wanchai5|Leo5|Nadon|mai5

จะสังเกตุเห็นเริ่มมีข้อมูลแปลกมาละ โดยแถวที่ 1,3,5 มีเครื่องหมาย (|) อยู่ 3 ตัว ถ้าเราตัดด้วย (|) ช่องที่ 1,3,5 จะมีข้อมูลอยู่ 4 คอลัมน์ถ้า table ออกแบบมาให้รองรับได้แค่ 3 คอลัมน์ข้อมูลคอลัมที่ 4 จะไม่ถูกเก็บเข้าฐานข้อมูล แต่ข้อมูลจริงที่ได้รับมาคอลัมน์สุดที่มีเครื่องหมายขั้นอยู่มันอาจจะเกิดจากการคีย์ข้อมูลผิดหรือระบบ generate file ออกมาให้ผิด สมมติว่าข้อมูล Nadon|mai1 , Nadon|mai3 , Nadon|mai5 มันคือข้อมูลชุดเดียวกันแต่มันถูกขั้นด้วย (|) ในเนื้อข้อมูลของมันเอง ไม่ใช่เครื่องหมายที่มาขั้นระหว่างคอลัมน์ แถวที่ 1,3,5 ข้อความในช่องสุดท้ายจะถูกตัดออกไป

ผลการรันโปรแกรมตัวอย่างที่ 2

ตัวอย่างข้อมูลที่ 3

“Wanchai1”|“Leo1”|“Nadon|mai1”
“Wanchai2”|“Leo2”|“Nadonmai2”
“Wanchai3”|“Leo3”|“Nadon|mai3”
“Wanchai4”|“Leo4”|“Nadonmai4”
“Wanchai5”|“Leo5”|“Nadon|mai5”

จากตัวอย่างที่ 2 ที่ผ่านมาเพื่อเป็นการแก้ปัญหาให้ข้อมูลคอลัมน์สุดท้ายเป็นเนื้อข้อความเดียวกันก็ลองใส่เครื่องหมาย “ ” ครอบหัวท้ายของข้อความตอน generate file csv เพื่อให้ข้อความที่ (|) เป็นเนื้อข้อความเดียวกันไม่ถูกตัดออก

ผลการรันโปรแกรมตัวอย่างที่ 3

เท่านี้ก็จัดการ ข้อมูลที่มีเครื่อง (|) ที่รวมอยู่ในข้อความได้แล้ว…

Like what you read? Give Leo Nadon a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.