C# Export DataGridView Data To CSV

Hyun·2022년 7월 25일
0

ex) Export DataGridView Data To CSV

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ExportDataGridView
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
        }

        public void Export()
        {
            if (DTG_Result.Rows.Count > 0)
            {
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter = "CSV (*.csv)|*.csv";
                saveFileDialog.FileName = "Output.csv";
                bool fileError = false;

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    if (File.Exists(saveFileDialog.FileName))
                    {
                        try
                        {
                            File.Delete(saveFileDialog.FileName);
                        }

                        catch (IOException ex)
                        {
                            fileError = true;

                            MessageBox.Show(ex.Message);
                        }
                    }
                    if (!fileError)
                    {
                        try
                        {
                            int columnCount = DTG_Result.Columns.Count;
                            string columnNames = "";
                            string[] export = new string[DTG_Result.Rows.Count + 1];
                            
                            for (int i = 0; i < columnCount; i++)
                            {
                                columnNames += DTG_Result.Columns[i].HeaderText.ToString() + ",";
                            }
                            export[0] += columnNames;

                            for(int i = 1; i < DTG_Result.Rows.Count; i++)
                            {
                                for (int j = 0; j < columnCount; j++)
                                {
                                    export[i] += DTG_Result.Rows[i - 1].Cells[j].Value.ToString() + ",";
                                }
                            }

                            File.WriteAllLines(saveFileDialog.FileName, export, Encoding.UTF8);
                        }

                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    }
                }
            }

            else
            {
                MessageBox.Show("No Record To Export !!!", "Info");
            }
        }
    }
}
profile
노력형 개발자!

0개의 댓글