Export کردن DataGridView در Windows Form به CSV

Export کردن DataGridView

در این مقاله نشان می دهیم که چگونه در Windows Form عملیات Export کردن DataGridView را با استفاده از زبان های C# و VB.Net به فایل CSV را انجام دهیم. فایل CSV، فایل متنی است که داده ها (رکوردها) با جداکننده ویرگول(کاما) جداشده و کنارهم ذخیره شده اند. به همراه توضیحات کامل ، سورس نیز در انتهای مطلب برای دانلود قرار داده شده است …

Export کردن DataGridView

طراحی فرم:

یک DataGridView و یک Button به Windows Form خود اضافه کرده ایم.

Export کردن DataGridView

فضاهای نام:

فضاهای نام زیر را باید به پروژه خود اضافه کنیم.

کد C#:

using System.IO;
using System.Data;

کد VB.Net:

Imports System.IO
Imports System.Data

پرکردن DataGridView:

DataGridView با یک DataTable داینامیک با یک سری داده نمونه پر می شود.

کد C#:

public Form1()
{
    InitializeComponent();
    this.BindDataGridView();
}
 
private void BindDataGridView()
{
    DataTable dt = new DataTable();
    dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
            new DataColumn("Name", typeof(string)),
            new DataColumn("City",typeof(string)) });
    dt.Rows.Add(1, "Amir Mahdavi", "Tehran");
    dt.Rows.Add(2, "Nima Ahmadi", "Shiraz");
    dt.Rows.Add(3, "Sahand Moradi", "Tafresh");
    dt.Rows.Add(4, "Mani Amini", "Tehran");
    this.dataGridView1.DataSource = dt;
}

کد VB.Net:

Public Sub New()
    InitializeComponent()
    Me.BindDataGridView()
End Sub
 
Private Sub BindDataGridView()
    Dim dt As New DataTable()
    dt.Columns.AddRange(New DataColumn() {New DataColumn("Id", GetType(Integer)), _
                                           New DataColumn("Name", GetType(String)), _
                                           New DataColumn("City", GetType(String))})
    dt.Rows.Add(1, "Amir Mahdavi", "Tehran")
    dt.Rows.Add(2, "Nima Ahmadi", "Shiraz")
    dt.Rows.Add(3, "Sahand Moradi", "Tafresh")
    dt.Rows.Add(4, "Mani Amini", "Tehran")
    Me.dataGridView1.DataSource = dt
End Sub

Export کردن DataGridView

Export کردن داده های DataGridView به فایل CSV:

زمانی که دکمه Export کلیک می شود، رویداد زیر اجرا می شود. یک حلقه روی سطر و ستون های DataGridView اجرا می شود و یک رشته با جداکننده کاما تولید می شود.

درنهایت، رشته جداشده با کاما با استفاده از کلاس File در فایل CSV نوشته می شود.

کد C#:

    string csv = string.Empty;
 
    //Add the Header row for CSV file.
    foreach (DataGridViewColumn column in dataGridView1.Columns)
    {
        csv += column.HeaderText + ',';
    }
 
    //Add new line.
    csv += "\r\n";
 
    //Adding the Rows
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        foreach (DataGridViewCell cell in row.Cells)
        {
            //Add the Data rows.
            csv += cell.Value.ToString().Replace(",", ";") + ',';
        }
 
        //Add new line.
        csv += "\r\n";
    }
 
    //Exporting to CSV.
    string folderPath = "C:\\CSV\\";
    File.WriteAllText(folderPath + "DataGridViewExport.csv", csv);

کد VB.Net:

Private Sub btnExport_Click(sender As System.Object, e As System.EventArgs) Handles btnExport.Click
    'Build the CSV file data as a Comma separated string.
    Dim csv As String = String.Empty
 
    'Add the Header row for CSV file.
    For Each column As DataGridViewColumn In dataGridView1.Columns
        csv += column.HeaderText & ","c
    Next
 
    'Add new line.
    csv += vbCr & vbLf
 
    'Adding the Rows
    For Each row As DataGridViewRow In dataGridView1.Rows
        For Each cell As DataGridViewCell In row.Cells
            'Add the Data rows.
            csv += cell.Value.ToString().Replace(",", ";") & ","c
        Next
 
        'Add new line.
        csv += vbCr & vbLf
    Next
 
    'Exporting to Excel
    Dim folderPath As String = "C:\CSV\"
    File.WriteAllText(folderPath & "DataGridViewExport.csv", csv)
End Sub

Export کردن DataGridView

موفق باشید

محمد نجفی

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

    جواد پاسخ

    با تشکر
    موفق باشید.