Tuesday, July 22, 2014

Genrate Excel and CSV File in Asp.Net

 
Generate Excel File from Datagrid or GridView in Asp.Net
=================================================

[code]
private void GenerateExcelFile(DataSet dsData)
{
DataTable objDataTable = new DataTable();

objDataTable.Columns.Add(new DataColumn("PageTitle"));
objDataTable.Columns.Add(new DataColumn("MetaData"));
objDataTable.Columns.Add(new DataColumn("Title"));
objDataTable.Columns.Add(new DataColumn("Price"));
objDataTable.Columns.Add(new DataColumn("PriceRetail"));
objDataTable.Columns.Add(new DataColumn("StyleNumber"));
objDataTable.Columns.Add(new DataColumn("DescShort"));
objDataTable.Columns.Add(new DataColumn("DescLong"));
objDataTable.Columns.Add(new DataColumn("SmallImage"));
objDataTable.Columns.Add(new DataColumn("LargeImage"));
objDataTable.Columns.Add(new DataColumn("DateDownload"));

foreach (DataRow dr in dsData.Tables[0].Rows)
{
DataRow ObjDr = objDataTable.NewRow();

ObjDr["PageTitle"] = dr["PageTitle"];
ObjDr["MetaData"] = dr["MetaData"];
ObjDr["Title"] = dr["Title"];
ObjDr["Price"] = dr["Price"];
ObjDr["PriceRetail"] = dr["PriceRetail"];
ObjDr["StyleNumber"] = dr["StyleNumber"];
ObjDr["DescShort"] = dr["DescShort"];
ObjDr["DescLong"] = dr["DescLong"];
ObjDr["SmallImage"] = dr["SmallImage"];
ObjDr["LargeImage"] = dr["LargeImage"];
ObjDr["DateDownload"] = dr["DateDownload"];

objDataTable.Rows.Add(ObjDr);
}

System.IO.StringWriter objStringWriter = new System.IO.StringWriter();
HtmlTextWriter objHtmlTextWriter = new HtmlTextWriter(objStringWriter);
Response.Clear();
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=File.xls;");

DataGrid dg = new DataGrid();
dg.DataSource = objDataTable;
dg.DataBind();

dg.RenderControl(objHtmlTextWriter);
Response.Write(objStringWriter.ToString());
Response.End();
}
[/code]

Generate CSV File in Asp.Net
========================
[code]
private void GenerateCSV(DataSet dsData)
{
System.Text.StringBuilder objSB = new System.Text.StringBuilder();

// Looping trough Fields name of Database
for (int i = 0; i <= dsData.Tables[0].Columns.Count - 1; i++)
{
if (i < dsData.Tables[0].Columns.Count - 1)
{
objSB.Append(dsData.Tables[0].Columns[i].ColumnName.ToString() + "\t");
}
else
{
objSB.Append(dsData.Tables[0].Columns[i].ColumnName.ToString() + "\r\n");
}
}
// Looping through Every rows and column.
for (int i = 0; i <= dsData.Tables[0].Rows.Count - 1; i++)
{
for (int j = 0; j <= dsData.Tables[0].Columns.Count - 1; j++)
{
if (j < dsData.Tables[0].Columns.Count - 1)
{
objSB.Append(dsData.Tables[0].Rows[i][j].ToString() + "\t");
}
else
{
objSB.Append(string.IsNullOrEmpty(dsData.Tables[0].Rows[i][j].ToString()) ? "-" : dsData.Tables[0].Rows[i][j].ToString() + "\r\n");
}
}
}

Response.Clear();
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=File.csv;");

Response.Write(objSB.ToString());
Response.End();
}
[/code]

No comments: