Description:-
ClosedXML makes it easier for developers to create
Excel 2007/2010 files. It provides a nice object oriented way to manipulate the
files (similar to VBA) without dealing with the hassles of XML Documents. It
can be used by any .NET language like C# and Visual Basic (VB).
ClosedXML allows you to create Excel 2007/2010 files
without the Excel application. The typical example is creating Excel reports on
a web server.
If you've ever used the Microsoft Open XML Format SDK you know just how much code you have to write to get the same results as the following 4 lines of code.
If you've ever used the Microsoft Open XML Format SDK you know just how much code you have to write to get the same results as the following 4 lines of code.
var workbook = new XLWorkbook(); var worksheet = workbook.Worksheets.Add("Sample Sheet"); worksheet.Cell("A1").Value = "Hello World!"; workbook.SaveAs("HelloWorld.xlsx");
Here we will create
Excel file from Sql database and download it directly. using OpenXML.dll we can
create it. using it Create XLWorkbook, WorkSheets etc.
Download File:- ClosedXML.dll, itextsharp.dll, itextsharp.xtra.dll, AccessDatabaseEngine.exe
Download File:- ClosedXML.dll, itextsharp.dll, itextsharp.xtra.dll, AccessDatabaseEngine.exe
Here i have Create example for Create excel file from
database and directly download it from database based on data.
Create Table:-
Create Table:-
CREATE TABLE [dbo].[Customers]( [ContactName] [varchar](20) NOT NULL, [City] [varchar](20) NOT NULL, [PostalCode] [int] NOT NULL, [Country] [varchar](20) NOT NULL, [Phone] [bigint] NOT NULL, [Fax] [bigint] NOT NULL, [CustomerId] [int] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED ( [CustomerId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
Web.config:-
<connectionStrings> <add connectionString="ConnectionString" name="DBCS" providerName="System.Data.SqlClient"/> <add name ="Excel03ConString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}; Extended Properties='Excel 8.0;HDR={1}'"/> <add name ="Excel07ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties='Excel 8.0;HDR={1}'"/> <add name = "Excel03ConString_1" connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=YES'"/> <add name = "Excel07+ConString" connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=YES'"/> </connectionStrings>
Default.aspx:-
Namespaces:-
<div> <asp:Button ID="Button1" Text="Export" OnClick="ExportExcel" runat="server" /> </div>
Namespaces:-
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Data; using ClosedXML.Excel; using System.Configuration; using System.Data.SqlClient;
Default.aspx.cs:-
protected void ExportExcel(object sender, EventArgs e) { string constr = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; using (SqlConnection con = new SqlConnection(constr)) { using (SqlCommand cmd = new SqlCommand("SELECT * FROM Customers")) { using (SqlDataAdapter sda = new SqlDataAdapter()) { cmd.Connection = con; sda.SelectCommand = cmd; using (DataTable dt = new DataTable()) { sda.Fill(dt); using (XLWorkbook wb = new XLWorkbook()) { wb.Worksheets.Add(dt, "Customers"); Response.Clear(); Response.Buffer = true; Response.Charset = ""; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment;filename=SqlExport.xlsx"); using (MemoryStream MyMemoryStream = new MemoryStream()) { wb.SaveAs(MyMemoryStream); MyMemoryStream.WriteTo(Response.OutputStream); Response.Flush(); Response.End(); } } } } } } }
1 comments:
commentsNice article. visit #aspmantra.com
ReplyThanks for comments.....