This code will generate the .csv (Comma separator file) from the Data source like DataTable or XML strings.
protected void CreateCSV(object sender,EventArgs e)
{
MemoryStream ms = new MemoryStream();
DataSet ds = new DataSet();
ds.ReadXml(@"d:\students.xml");
if (ds.Tables[0].Rows.Count > 0)
{
StreamWriter writer = new StreamWriter(ms);
writer.AutoFlush = true;
foreach (DataColumn column in ds.Tables[0].Columns)
{
writer.Write(column.ColumnName.ToString() + ",");
}
writer.WriteLine();
foreach (DataRow drow in ds.Tables[0].Rows)
{
writer.Write(drow["Name"].ToString() + "," + Convert.ToDateTime(drow["DOJ"]).ToShortDateString().ToString() + "," + drow["Height"].ToString() + ",");
writer.WriteLine();
}
}
using (FileStream file = new FileStream("D:\\file5.csv", FileMode.Create, FileAccess.Write))
{
ms.WriteTo(file);
}
}
Sample XML file to work on the above solution.
Murugesan
12/12/2013
155.57845645
Murugesan
12/12/2013
155.57845645
Amit Ingle
05/04/2013
155.57845645