ارسال Datatable به CSV با استفاده از متد Extension

شنبه 28 تیر 1393

ارسال Datatable به CSV با استفاده از متد Extension

ارسال Datatable به CSV با استفاده از متد Extension

سلام

من می خواهم امروز چگونگی ارسال یک datatable به comma seprated file با استفاده از متد Extension  را برای شما توضیح دهم.

در این مقاله همچنین یاد خواهید گرفت که چگونه از متدهای Extension برای ساخت کدهایی با کنترل بهتر،استفاده کنید.

درباره CSV File

فایلی است که همه ی مقادیر آن با کاما از هم جدا شده اند.که این فایل شامل داده هایی با همه ی ستون ها خواهد شد.

استفاده دیگر از فایل CSV ،این است که مستقیما فایل را در اکسل باز می کند و سپس داده ها به صورت اتوماتیک در خانه های اکسل پر خواهند شد.

1-ساخت یک DataTable

ما یک کلاس را که شامل یک متدی است که یک دیتا تیبل را بر می کرداند ،اضافه می کنیم.

public static class OperationsUtlity  
     {  
        public static DataTable createDataTable()  
        {  
            DataTable table = new DataTable();     
                //columns  
            table.Columns.Add("ID", typeof(int));     
            table.Columns.Add("NAME", typeof(string));     
            table.Columns.Add("CITY", typeof(string));    
  
                //data  
            table.Rows.Add(111, "Devesh", "Ghaziabad");     
            table.Rows.Add(222, "ROLI", "KANPUR");     
            table.Rows.Add(102, "ROLI", "MAINPURI");     
            table.Rows.Add(212, "DEVESH", "KANPUR");  
            table.Rows.Add(102, "NIKHIL", "GZB");  
            table.Rows.Add(212, "HIMANSHU", "NOIDa");  
            table.Rows.Add(102, "AVINASH", "NOIDa");  
            table.Rows.Add(212, "BHUPPI", "GZB");  
              
             return table;  
          }  
         
    }  

2-ساخت UI برای نمایش  DataTable

در اینجا یک گرید ویو ساده را برای اتصال به دیتاتیبل اضافه می کنیم.

 

 

کد

3-ساخت یک متد Extension برای تبدیل یک دیتاتیبل به CSV

ساخت یک کلاس

public static class  CSVUtlity  
 { }  

اضافه کردن یک متد Extension

public static void ToCSV(this DataTable dtDataTable, string strFilePath)  
        {    
         }  

این متد دیتا تیبل را به عنوان یک پارامتر می گیرد

بعد از اضافه کردن متد Extension با نام ToCSV ، لیست زیر را در آن قرار می دهیم.

کد زیر دیتاتیبل را به CSV تبدیل می کند

public static void ToCSV(this DataTable dtDataTable, string strFilePath)  
        {     
            StreamWriter sw = new StreamWriter(strFilePath, false);  
            //headers  
            for (int i = 0; i < dtDataTable.Columns.Count; i++)  
            {  
                sw.Write(dtDataTable.Columns[i]);  
                if (i < dtDataTable.Columns.Count - 1)  
                {  
                    sw.Write(",");  
                }  
            }  
            sw.Write(sw.NewLine);  
            foreach (DataRow dr in dtDataTable.Rows)  
            {  
                for (int i = 0; i < dtDataTable.Columns.Count; i++)  
                {  
                    if (!Convert.IsDBNull(dr[i]))  
                    {  
                        string value = dr[i].ToString();  
                        if (value.Contains(','))  
                        {  
                            value = String.Format("\"{0}\"", value);  
                            sw.Write(value);  
                        }  
                        else  
                        {  
                            sw.Write(dr[i].ToString());  
                        }  
                    }  
                    if (i < dtDataTable.Columns.Count - 1)  
                    {  
                        sw.Write(",");  
                    }  
                }  
                sw.Write(sw.NewLine);  
            }  
            sw.Close();  
        }  

4-ارسال به CSV روی کلیک دکمه

private void btnCSV_Click(object sender, EventArgs e)  
        {  
            DataTable dt = OperationsUtlity.createDataTable();  
            string filename = OpenSavefileDialog();  
            dt.ToCSV(filename);  
  
              
        }   

dt.TOCSV متد TOCSV را که در کلاس CSVutlity قرار دارد را صدا می کند

5- خروجی کد

خروجی کد یک فایل اکسل است

باز کردن فایل در NotePad

به صورت پیش فرض در اکسل باز می شود

امیدوارم این مقاله برای شما مفید بوده باشد.

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 3k بازدید
  • 4 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید