'C# datagGridView CSV 파일로 내보내기'에 해당되는 글 1건

728x90

C# 에서 dataGridView 내용을 CSV 파일로 내보내기하는 코드이다.

CSV 파일은 텍스트 파일 내보내기와 동일하다.

기존 파일이 존재하는데 덮어쓰기 시도하면 덮어쓰기 된다.


private void btnCSV_Save_Click(object sender, EventArgs e)
{
    using (SaveFileDialog dlg = new SaveFileDialog())
    {
        dlg.Filter = "csv (*.csv) | *.csv";
        if (dlg.ShowDialog() == DialogResult.OK)
        {
            this.Save_Csv(dlg.FileName, dataGridView1); // dataGridView에 데이터를 세팅하는 메서드를 호출
        }
    }
}


/// <summary>
/// dataGridView 데이터를 CSV 로 파일 내보내기
/// </summary>
private void Save_Csv(string fileName, DataGridView dgv, bool header)
{
    string delimiter = ";";  // 구분자
    FileStream fs = new FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
    StreamWriter csvExport = new StreamWriter(fs, System.Text.Encoding.UTF8);

    if (dgv.Rows.Count == 0) return;

    // 헤더정보 출력
    if (header)
    {
        for (int i = 0; i < dgv.Columns.Count; i++)
        {
            csvExport.Write(dgv.Columns[i].HeaderText);
            if (i != dgv.Columns.Count - 1)
            {
                csvExport.Write(delimiter);
            }
        }
    }

    csvExport.Write(csvExport.NewLine); // add new line

    // 데이터 출력
    foreach (DataGridViewRow row in dgv.Rows)
    {
        if (!row.IsNewRow)
        {
            for (int i = 0; i < dgv.Columns.Count; i++)
            {
                csvExport.Write(row.Cells[i].Value);
                if (i != dgv.Columns.Count - 1)
                {
                    csvExport.Write(delimiter);
                }
            }
            csvExport.Write(csvExport.NewLine); // write new line
        }
    }
   
    csvExport.Flush(); // flush from the buffers.
    csvExport.Close();
    fs.Close();
    MessageBox.Show("CSV파일 저장 완료!");
}





블로그 이미지

Link2Me

,