EasyXLS

How to export DataSet to Excel in custom format in C#.NET

EasyXLS Excel library can be used to export Excel files in C#. The library works with .NET Framework or .NET Core platform.

Step 1: Download and install EasyXLS Excel Library for .NET

To download the trial version of EasyXLS Excel Library, press the below button:

Download EasyXLS™ Excel Library for C#

If you already own a license key, you may login and download EasyXLS from your account.

Step 2: Create a C# project

If don't have a project, create one as ASP.NET web application, windows forms app, console application, class library or service.

Step 3: Include EasyXLS library into project

EasyXLS.dll must be added as reference to your project. EasyXLS.dll can be found after installing EasyXLS, in "Dot NET version" folder.

Add EasyXLS reference

Step 4: Run C# code that exports DataSet to Excel with formatting

Execute the following C# code that exports DataSet to Excel with formatting.

/* -----------------------------------------------------------------------
 * Tutorial 02
 * 
 * This code sample shows how to export DataSet to Excel file in C#. 
 * The DataSet contains data from a SQL database, but it also can contain
 * data from other sources like GridView, DataGridView, DataGrid or other.
 * The cells are formatted using a user-defined format.
 * -------------------------------------------------------------------- */

using System;
using System.IO;
using System.Data;
using System.Drawing;
using EasyXLS;
using EasyXLS.Constants;

public class Tutorial02
{
    [STAThread]
    static void Main()
    {
        Console.WriteLine("Tutorial 02\n-----------\n");

        // Create an instance of the class that exports Excel files
        ExcelDocument workbook = new ExcelDocument();

        // Create the database connection
        String sConnectionString = "Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;";
        System.Data.SqlClient.SqlConnection sqlConnection =
                              new System.Data.SqlClient.SqlConnection(sConnectionString);
        sqlConnection.Open();      		

        // Create the adapter used to fill the dataset
        String sQueryString = "SELECT TOP 100 CAST(Month(ord.OrderDate) AS varchar) + " +
                              "'/' + CAST(Day(ord.OrderDate) AS varchar) + " + 
                              "'/' + CAST(year(ord.OrderDate) AS varchar) AS 'Order Date', " +
                              "P.ProductName AS 'Product Name', O.UnitPrice AS Price, " +
                              "CAST(O.Quantity AS varchar) AS Quantity, O.UnitPrice * O. Quantity AS Value " +
                              "FROM Orders AS ord, [Order Details] AS O, Products AS P " +
                              "WHERE O.ProductID = P.ProductID AND O.OrderID = ord.OrderID";
        System.Data.SqlClient.SqlDataAdapter adp = 
                              new System.Data.SqlClient.SqlDataAdapter(sQueryString, sqlConnection);

        // Populate the dataset
    	DataSet ds  = new DataSet();
        adp.Fill(ds);

        // Create an instance of the class used to format the cells in the report
        ExcelAutoFormat xlsAutoFormat = new ExcelAutoFormat();
        
        // Set the formatting style of the header
        ExcelStyle xlsHeaderStyle = new ExcelStyle(Color.LightGreen);
        xlsHeaderStyle.setFontSize(12);
        xlsAutoFormat.setHeaderRowStyle(xlsHeaderStyle);

        // Set the formatting style of the cells (alternating style)
        ExcelStyle xlsEvenRowStripesStyle = new ExcelStyle(Color.FloralWhite);
        xlsEvenRowStripesStyle.setFormat("$0.00");
        xlsEvenRowStripesStyle.setHorizontalAlignment(Alignment.ALIGNMENT_LEFT);
        xlsAutoFormat.setEvenRowStripesStyle(xlsEvenRowStripesStyle);
        ExcelStyle xlsOddRowStripesStyle = new ExcelStyle(Color.FromArgb(240, 247, 239));
        xlsOddRowStripesStyle.setFormat("$0.00");
        xlsOddRowStripesStyle.setHorizontalAlignment(Alignment.ALIGNMENT_LEFT);
        xlsAutoFormat.setOddRowStripesStyle(xlsOddRowStripesStyle);
        ExcelStyle xlsLeftColumnStyle = new ExcelStyle(Color.FloralWhite);
        xlsLeftColumnStyle.setFormat("mm/dd/yyyy");
        xlsLeftColumnStyle.setHorizontalAlignment(Alignment.ALIGNMENT_LEFT);
        xlsAutoFormat.setLeftColumnStyle(xlsLeftColumnStyle);
		
        // Export the Excel file
        Console.WriteLine("Writing file C:\\Samples\\Tutorial02 - export DataSet to Excel with formatting.xlsx.");
        workbook.easy_WriteXLSXFile_FromDataSet(
           "C:\\Samples\\Tutorial02 - export DataSet to Excel with formatting.xlsx", ds, xlsAutoFormat, "Sheet1");

        // Confirm export of Excel file
        String sError = workbook.easy_getError();
        if (sError.Equals(""))
            Console.Write("\nFile successfully created. Press Enter to Exit...");
        else
            Console.Write("\nError encountered: " + sError + "\nPress Enter to Exit...");

    	// Close the database connection
    	sqlConnection.Close();

        // Dispose memory
        workbook.Dispose();
        ds.Dispose();
        sqlConnection.Dispose();
        adp.Dispose();

        Console.ReadLine();
    }
}

EasyXLS Excel libraries:

.NET
Excel Library for C#
full .NET version to import, export or convert Excel files
Excel Writer for C#
.NET version to create and export Excel files
Express Excel Writer for C#
limited .NET version to create and export Excel files in predefined formats
Download EasyXLS™ Excel Library for C#

File formats:

MS Excel 97 - 2003
MS Excel 2007 - 2010
MS Excel 2013
MS Excel 2016
MS Excel 2019
XLSXXLSMXLSBXLS
XMLHTMLCSVTXT