본문 바로가기

C#

C# DataGridView 에 입력된 내용을 CSV출력하는 방법

반응형

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

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

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

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

 

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

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

아래에서 사용되는 StreamWriter의 문서도 첨부합니다.
참고하세요.

 

StreamWriter 클래스 (System.IO)

TextWriter를 구현하여 특정 인코딩의 스트림에 문자를 씁니다.Implements a TextWriter for writing characters to a stream in a particular encoding.

docs.microsoft.com

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
다운로드

 

반응형