일반
csv저장기능
알 수 없는 사용자
2022. 2. 15. 09:33
SMALL
먼저 파일저장 버튼을 만든다
ExportToCSV()라는 메소드를 만든다
private void ExportToCSV()
{
SaveFileDialog saveFileDialog = GetCsvSave();
if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Save_Csv(saveFileDialog.FileName, dataGridView1, true); // dataGridView에 데이터를 세팅하는 메서드를 호출
}
Save_CSV 라는 함수를 만든다.
bool headerText = true;
private void Save_Csv(string fileName, DataGridView dataGridView1, bool v)
{
string delimiter = ","; // 구분자
FileStream fs = new FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
StreamWriter csvExport = new StreamWriter(fs, System.Text.Encoding.UTF8); //UTF8로 엔코딩
if (dataGridView1.Rows.Count == 0) return;
// header가 true면 헤더정보 출력
if (headerText)
{
for (int i = 1; i < dataGridView1.Columns.Count-4; i++)
{
csvExport.Write(dataGridView1.Columns[i].HeaderText);
if (i != dataGridView1.Columns.Count - 1)
{
csvExport.Write(delimiter);
}
}
}
csvExport.Write(csvExport.NewLine); // add new line
// 데이터 출력
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (!row.IsNewRow)
{
for (int i = 1; i < dataGridView1.Columns.Count-4; i++)
{
csvExport.Write(row.Cells[i].Value);
if (i != dataGridView1.Columns.Count - 1)
{
csvExport.Write(delimiter);
}
}
csvExport.Write(csvExport.NewLine); // write new line
}
}
csvExport.Flush();
csvExport.Close();
fs.Close();
MessageBox.Show("CSV 파일 저장 완료!");
}
GetCsvSave()라는 메소드를 만든다
private SaveFileDialog GetCsvSave()
{
//Getting the location and file name of the excel to save from user.
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.CheckPathExists = true;
saveDialog.AddExtension = true;
saveDialog.ValidateNames = true;
string path = System.Reflection.Assembly.GetExecutingAssembly().Location;
string filepath = Path.GetDirectoryName(path);
saveDialog.InitialDirectory = filepath;// Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
saveDialog.DefaultExt = ".csv";
saveDialog.Filter = "csv (*.csv) | *.csv";
saveDialog.FileName = "export".ToString();
return saveDialog;
}
LIST