Friday, February 12, 2010

Create CVS file using datatable

Following steps will create CVS file for you


public static void WriteToCSV(DataTable dt)
        {
            string attachment = "attachment; filename=PlaningData.csv";
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.ClearHeaders();
            HttpContext.Current.Response.ClearContent();
            HttpContext.Current.Response.AddHeader("content-disposition", attachment);
            HttpContext.Current.Response.ContentType = "text/csv";
            HttpContext.Current.Response.AddHeader("Pragma", "public");


            WriteColumnName();
            foreach ( DataRow dr in dt.Rows )
            {
                WriteUserInfo(dr);
            }
            HttpContext.Current.Response.End();
        }

        private static void WriteUserInfo(DataRow  person)
        {
            StringBuilder stringBuilder = new StringBuilder();
            AddComma(System.DateTime.Now.ToLongDateString(), stringBuilder);
            AddComma(person[0].ToString(), stringBuilder);
            AddComma(person[1].ToString(), stringBuilder);
            AddComma(person[2].ToString(), stringBuilder);
            AddComma(person[3].ToString(), stringBuilder);
            AddComma(person[4].ToString(), stringBuilder);
            AddComma(person[5].ToString(), stringBuilder);
            AddComma(person[6].ToString(), stringBuilder);
            AddComma(person[7].ToString(), stringBuilder);
            AddComma(person[8].ToString(), stringBuilder);
            AddComma(person[9].ToString(), stringBuilder);
            AddComma(person[10].ToString(), stringBuilder);
            AddComma(person[11].ToString(), stringBuilder);
            AddComma(person[12].ToString(), stringBuilder);
            AddComma(person[13].ToString(), stringBuilder);
            AddComma(person[14].ToString(), stringBuilder);
            AddComma(person[15].ToString(), stringBuilder);
            AddComma(person[16].ToString(), stringBuilder);
            AddComma(person[17].ToString(), stringBuilder);
            AddComma(person[18].ToString(), stringBuilder);
            AddComma(person[19].ToString(), stringBuilder);
            AddComma(person[20].ToString(), stringBuilder);
            AddComma(person[21].ToString(), stringBuilder);
            AddComma(person[22].ToString(), stringBuilder);
            AddComma(person[23].ToString(), stringBuilder);
            AddComma(person[24].ToString(), stringBuilder);
            AddComma(person[25].ToString(), stringBuilder);
            AddComma(person[26].ToString(), stringBuilder);
            AddComma(person[27].ToString(), stringBuilder);
            AddComma(person[28].ToString(), stringBuilder);
            AddComma(person[29].ToString(), stringBuilder);
            AddComma(person[30].ToString(), stringBuilder);
            AddComma(person[31].ToString(), stringBuilder);
            AddComma(person[32].ToString(), stringBuilder);
            AddComma(person[33].ToString(), stringBuilder);
            AddComma(person[34].ToString(), stringBuilder);
            AddComma(person[35].ToString(), stringBuilder);
            AddComma(person[36].ToString(), stringBuilder);
            AddComma(person[37].ToString(), stringBuilder);
            AddComma(person[38].ToString(), stringBuilder);
            AddComma(person[39].ToString(), stringBuilder);
            AddComma(person[40].ToString(), stringBuilder);
            AddComma(person[41].ToString(), stringBuilder);
            AddComma(person[42].ToString(), stringBuilder);
            AddComma(person[43].ToString(), stringBuilder);
            AddComma(person[44].ToString(), stringBuilder);
            AddComma(person[45].ToString(), stringBuilder);
            AddComma(person[46].ToString(), stringBuilder);
            AddComma(person[47].ToString(), stringBuilder);
            AddComma(person[48].ToString(), stringBuilder);
            AddComma(person[49].ToString(), stringBuilder);
            AddComma(person[50].ToString(), stringBuilder);
            AddComma(person[51].ToString(), stringBuilder);
            AddComma(person[52].ToString(), stringBuilder);
            AddComma(person[53].ToString(), stringBuilder);
            AddComma(person[54].ToString(), stringBuilder);           

            HttpContext.Current.Response.Write(stringBuilder.ToString());
            HttpContext.Current.Response.Write(Environment.NewLine);
        }

        private static void AddComma(string value, StringBuilder stringBuilder)
        {
            stringBuilder.Append(value.Replace(',', ' '));
            stringBuilder.Append(", ");
        }

        private static void WriteColumnName()
        {
            string columnNames = "PP Run Date, Jan07 ,    Feb07 ,    Mar07 ,    Apr07 ,    May07 ,    Jun07 ,    Jul07 ,    Aug07 ,    Sep07 ,    Oct07 ,    Nov07 ,    Dec07 ,    Jan08 ,    Feb08 ,    Mar08 ,    Apr08 ,    May08 ,    Jun08 ,    Jul08 ,    Aug08 ,    Sep08 ,    Oct08 ,    Nov08 ,    Dec08 ,    Jan09 ,    Feb09 ,    Mar09 ,    Apr09 ,    May09 ,Jun09 ,    Jul09 ,    Aug09 ,    Sep09 ,    Oct09 ,    Nov09 ,    Dec09 ,    Jan10 ,    Feb10 ,    Mar10 ,    Apr10 ,    May10 ,    Jun10 ,    Jul10 ,    Aug10 ,    Sep10 ,    Oct10 ,    Nov10 ,    Dec10 ,    Jan11 ,    Feb11 ,    Mar11 ,    Apr11 ,    May11 ,    Rep CTR Number ,    Rep CTR Title ";
            HttpContext.Current.Response.Write(columnNames);
            HttpContext.Current.Response.Write(Environment.NewLine);
        }