화면에 입력받은 내용을 CSV로 출력하는 간단한 예제입니다.

화면 구성은 다음과같이 해보았습니다.

그리드의 옵션은 다음과 같습니다.

추가, 변경, 삭제 를 허용합니다.


소스는 따로 첨부하겠습니다.

전체적으로 간단한 내용입니다만, 세부적인 설정은 소스를 참고해주세요.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
        private void button1_Click(object sender, EventArgs e)
        {
            using (StreamWriter writer = new StreamWriter(@"D:\test.csv"falseEncoding.GetEncoding("shift_jis")))
            {
                int rowCount = dataGridView1.Rows.Count;
 
                if (dataGridView1.AllowUserToAddRows == true)
                {
                    rowCount = rowCount - 1;
                }
 
                // 行
                for (int i = 0; i < rowCount; i++)
                {
                    // 리스트 초기화
                    List<string> strList = new List<string>();
 
                    // 列
                    for (int j = 0; j < dataGridView1.Columns.Count; j++)
                    {
                        strList.Add(dataGridView1[j, i].Value.ToString());
                    }
                    String[] strArray = strList.ToArray(); // 배열로 변환
 
                    // CSV 형식으로 변환
                    String strCsvData = String.Join(",", strArray);
                    writer.WriteLine(strCsvData);
                }
 
                MessageBox.Show("저장완료 ");
                writer.Close();
            }
 
        }
cs


초기 실행화면은 아래와 같습니다.


세 줄의 데이터를 입력하고 출력을 해보겠습니다.

개념을 설명하기위한 간단한 샘플이기에, Export 경로는 버튼클릭 이벤트에서 하드코드로 작성하였습니다.

[CSV Export] 버튼을 눌러보겠습니다.

가 메세지박스로 표시되었습니다.


출력된 CSV를 확인해보겠습니다.

화면에 입력된대로 출력된것을 확인할수 있습니다.


전체소스는 아래에서 다운받을수 있습니다.

DataGridCsvExport.zip


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



즐프하세요.

+ Recent posts