How to export data to Excel in Asp.NET

How to export data to Excel in Asp.NET

 

using​​ System;

using​​ System.Data;

using​​ System.Configuration;

using​​ System.Linq;

using​​ System.Web;

using​​ System.Web.Security;

using​​ System.Web.UI;

using​​ System.Web.UI.HtmlControls;

using​​ System.Web.UI.WebControls;

using​​ System.Web.UI.WebControls.WebParts;

using​​ System.Xml.Linq;

using​​ System.Text;

 

namespace​​ DotNetMindsCRM.ExportToExcel

{

 ​​ ​​ ​​​​ public​​ class​​ ExportToExcel

 ​​ ​​ ​​​​ {

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ public​​ byte[] ExportToExcel2007(DataTable dt)

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ {

 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ StringBuilder sb =​​ new​​ StringBuilder();

 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<?xml version='1.0'?>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<?mso-application progid='Excel.Sheet'?>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Workbook xmlns='urn:schemas-microsoft-com:office:spreadsheet'");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("xmlns:o='urn:schemas-microsoft-com:office:office'");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("xmlns:x='urn:schemas-microsoft-com:office:excel'");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("xmlns:ss='urn:schemas-microsoft-com:office:spreadsheet'");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("xmlns:html='http://www.w3.org/TR/REC-html40'>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<DocumentProperties xmlns='urn:schemas-microsoft-com:office:office'>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Author>CRM</Author>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<LastAuthor>XYZ</LastAuthor>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Created>"​​ + DateTime.Now.ToString() +​​ "</Created>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Company>DotNetMinds</Company>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Version>12.00</Version>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</DocumentProperties>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<ExcelWorkbook xmlns='urn:schemas-microsoft-com:office:excel'>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<WindowHeight>8130</WindowHeight>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<WindowWidth>15135</WindowWidth>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<WindowTopX>120</WindowTopX>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<WindowTopY>45</WindowTopY>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<ProtectStructure>False</ProtectStructure>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<ProtectWindows>False</ProtectWindows>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</ExcelWorkbook>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Worksheet ss:Name='Sheet1'>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Table ss:ExpandedColumnCount='"​​ + dt.Columns.Count +​​ "' ss:ExpandedRowCount='"​​ + (dt.Rows.Count + 1) +​​ "' x:FullColumns='1'");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("x:FullRows='1' ss:DefaultRowHeight='15'>");

 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Row>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ foreach​​ (DataColumn dc​​ in​​ dt.Columns)

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ {

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Cell><Data ss:Type='String'>"​​ + dc.ColumnName.ToString() +​​ "</Data></Cell>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ }

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</Row>");

 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ foreach​​ (DataRow dr​​ in​​ dt.Rows)

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ {

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Row>");

 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ foreach​​ (DataColumn dc​​ in​​ dt.Columns)

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ {

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ if​​ (dc.DataType == System.Type.GetType("System.Int64"))

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ {

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Cell><Data ss:Type='Number'>"​​ + dr[dc].ToString() +​​ "</Data></Cell>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ }

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ else​​ if​​ (dc.DataType == System.Type.GetType("System.String"))

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ {

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Cell><Data ss:Type='String'>"​​ + dr[dc].ToString() +​​ "</Data></Cell>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ }

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ }

 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</Row>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ }

 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</Table>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<WorksheetOptions xmlns='urn:schemas-microsoft-com:office:excel'>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<PageSetup>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Header x:Margin='0.3'/>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Footer x:Margin='0.3'/>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<PageMargins x:Bottom='0.75' x:Left='0.7' x:Right='0.7' x:Top='0.75'/>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</PageSetup>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Print>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<ValidPrinterInfo/>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<HorizontalResolution>600</HorizontalResolution>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<VerticalResolution>600</VerticalResolution>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</Print>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Selected/>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<ProtectObjects>False</ProtectObjects>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<ProtectScenarios>False</ProtectScenarios>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</WorksheetOptions>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</Worksheet>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Worksheet ss:Name='Sheet2'>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Table ss:ExpandedColumnCount='1' ss:ExpandedRowCount='1' x:FullColumns='1'");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("x:FullRows='1' ss:DefaultRowHeight='15'>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</Table>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<WorksheetOptions xmlns='urn:schemas-microsoft-com:office:excel'>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<PageSetup>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Header x:Margin='0.3'/>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Footer x:Margin='0.3'/>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<PageMargins x:Bottom='0.75' x:Left='0.7' x:Right='0.7' x:Top='0.75'/>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</PageSetup>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<ProtectObjects>False</ProtectObjects>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<ProtectScenarios>False</ProtectScenarios>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</WorksheetOptions>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</Worksheet>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Worksheet ss:Name='Sheet3'>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Table ss:ExpandedColumnCount='1' ss:ExpandedRowCount='1' x:FullColumns='1'");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("x:FullRows='1' ss:DefaultRowHeight='15'>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</Table>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<WorksheetOptions xmlns='urn:schemas-microsoft-com:office:excel'>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<PageSetup>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Header x:Margin='0.3'/>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<Footer x:Margin='0.3'/>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<PageMargins x:Bottom='0.75' x:Left='0.7' x:Right='0.7' x:Top='0.75'/>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</PageSetup>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<ProtectObjects>False</ProtectObjects>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("<ProtectScenarios>False</ProtectScenarios>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</WorksheetOptions>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</Worksheet>");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ sb.AppendLine("</Workbook>");

 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ byte[] buffer = System.Text.Encoding.UTF8.GetBytes(sb.ToString().Replace("'",​​ "\""));

 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ return​​ buffer;

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ }

 ​​ ​​ ​​​​ }

}

 

 

public​​ void​​ ExportDataToExcel(DataTable dt)

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ {

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ ExportToExcel.ExportToExcel objExportToExcel =​​ new​​ ExportToExcel.ExportToExcel();

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ byte[] buffer = objExportToExcel.ExportToExcel​​ (dt);

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ dt.Dispose();

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Response.Clear();

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Response.Buffer =​​ false;

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Response.AddHeader("content-disposition",​​ "attachment;filename=DotnetMinds.xml");

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Response.Charset =​​ "";

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Response.ContentType =​​ "text/xml";

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Response.BinaryWrite(buffer);

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Response.Flush();

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Response.End();

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ }

(Visited 12 times, 1 visits today)

Leave a Reply

Your email address will not be published. Required fields are marked *