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파일 저장 완료!");
}
'C# > dataGridView' 카테고리의 다른 글
C# dataGridView 글자 크기 지정 방법 (0) | 2015.12.28 |
---|---|
C# dataGridView 에 엑셀 읽어들이기 (엑셀 헤더 검사) (0) | 2015.12.06 |
C# dataGridView 높이 변경 (0) | 2015.10.18 |
C# dataGridView OleDB 를 이용하여 엑셀로 내보내기 (0) | 2015.10.08 |
C# dataGridView 에 엑셀 읽어들이기 (0) | 2015.10.07 |