본문 바로가기

VB.NET

[질문] csv 파일 데이터그리드뷰에 불러오기 도움이 필요합니다.

반응형

csv 파일 데이터그리드뷰에 불러오기 도움이 필요합니다.  



csv 파일을 데이터그리드뷰로 불러와서 처리하려합니다.
파일을 콤마로 나눠서 셀에 불러오게되는데 콤마가 들어간 내용이 한두곳에 존재하게되서 데이터를 못읽어옵니다..
어느부분을 수정해야할지 도움부탁드립니다.
 
(* "csv", "텍스트 콤마" 검색으로는 정보를 찾을수가 없어 질문드립니다.)
 
 
====== 코드 내용 =======
 
        Dim filename = "d:\test.csv"
        Dim connString = String.Format("Provider=Microsoft.Jet.OleDb.4.0; Data Source={0};Extended Properties=""Text;HDR=no;FMT=Delimited""", Path.GetDirectoryName(filename))
        Using cn = New OleDbConnection(connString)
            cn.Open()
            Dim csvFile As String = "SELECT * FROM [" + Path.GetFileName(filename) + "]"
            Using adapter = New OleDbDataAdapter(csvFile, cn)
                Dim ds = New DataSet()
                adapter.Fill(ds)
                DataGridView1.DataSource = ds.Tables(0)
                cn.Close()
                Beep()
            End Using
        End Using
 
 
 
csv 파일을 메모장에서 불러왔을때
csv 메모장으로 열었을때
 
 
 
csv 파일을 엑셀에서 불러왔을때
csv 엑셀로 열었을때
 
 
 
vb 코드 실행했을시 빈 칸 발생
vb 실행했을때



참, 정리가 잘 된 질문이다.
무엇을 물어보고자 하는지가 명확하게 보인다.
이 질문에 대해서 답변을 하고자, 좀 정리해보았다.
샘플파일을 첨부한다.

아래가 해결방안


        Dim csvDir As String = "C:\test\"

        Dim csvFileName As String = "test.csv"


        Dim conString As String = _

            "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _

            + csvDir + ";Extended Properties=""text;HDR=No;FMT=Delimited"""

        Dim con As New System.Data.OleDb.OleDbConnection(conString)


        Dim commText As String = "SELECT * FROM [" + csvFileName + "]"

        Dim da As New System.Data.OleDb.OleDbDataAdapter(commText, con)


        Dim dt As New DataTable

        da.Fill(dt)


        DataGridView1.DataSource = dt



해당 소스를 첨부는 아래를 참고하세요.


[소스]


WindowsApplication2.zip



[테스트용 csv 파일]


test.csv



즐프하세요.

반응형