Steps.
1) Create Simple Web Application ( asp.net using C#).
2) put the below control in to the page (.aspx)
2.1) GridView (id= GridView1)
2.2) Button (id=button1 and Text =Create CSV File)
or put the below code
<form id="form1" runat="server">
<center>
<div>
<table>
<tr>
<td>
Create CSV File
</td>
</tr>
<tr>
<td>
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</td>
</tr>
<tr>
<td align="center">
<asp:Button ID="Button1" runat="server" Text="Create CSV File" OnClick="Button1_Click" />
</td>
</tr>
</table>
</div>
</center>
</form>
3) assign data source to GridView. here i created dynamic dataset (on page load). save the DataSet in to ViewState.
public DataSet MyData
{
get
{
if (ViewState["MyData"] == null)
ViewState["MyData"] = new DataSet();
return (DataSet)ViewState["MyData"];
}
set { ViewState["MyData"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//create new data set
DataSet Ds = new DataSet();
//create new datatable
DataTable dt = new DataTable();
//create new column
DataColumn dc1 = new DataColumn("Id");
DataColumn dc2 = new DataColumn("Code");
DataColumn dc3 = new DataColumn("Name");
DataColumn dc4 = new DataColumn("datetime");
//add column to datatable
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
dt.Columns.Add(dc4);
for (int i = 0; i < 10; i++)
{
//add new row in to datatable
DataRow dr = dt.NewRow();
dr["Id"] = i;
dr["Code"] = "A" + i.ToString();
dr["Name"] = "B" + i.ToString();
dr["datetime"] = System.DateTime.Now.AddDays(Convert.ToDouble(i));
dt.Rows.Add(dr);
}
Ds.Tables.Add(dt);
MyData = Ds;
GridView1.DataSource = MyData;
GridView1.DataBind();
}
else
{
GridView1.DataSource = MyData;
GridView1.DataBind();
}
}
4) Export GridView Data in to CSV format
protected void Button1_Click(object sender, EventArgs e)
{
try
{
//Create CSV file
StreamWriter objSw = new StreamWriter(Server.MapPath("~/demo.csv"));
//get table from GridView1
DataTable objDt = ((DataSet)GridView1.DataSource).Tables[0];
//Get No Of Column in GridView
int NoOfColumn = objDt.Columns.Count;
//Create Header
for (int i = 0; i < NoOfColumn; i++)
{
objSw.Write(objDt.Columns[i]);
//check not last column
if (i < NoOfColumn - 1)
{
objSw.Write(",");
}
}
objSw.Write(objSw.NewLine);
//Create Data
foreach (DataRow dr in objDt.Rows)
{
for (int i = 0; i < NoOfColumn; i++)
{
objSw.Write(dr[i].ToString());
if (i < NoOfColumn - 1)
{
objSw.Write(",");
}
}
objSw.Write(objSw.NewLine);
}
objSw.Close();
}
catch (Exception ex)
{
Response.Write("Can Not Generate CSV File");
}
}
Thanks.
http://amitpatriwala.wordpress.com