DataTable Export
The following examples show how to export a  DataTables provide a way of storing and manipulating tabular data in rows and columns. They are commonly used for organizing and working with structured data in applications, supporting features such as sorting, filtering, and data binding to user interface controls. To insert a  You can test exporting a  The example creates a  GemBox.Spreadsheet, being fully written in C#, utilizes caching techniques to provide optimal speed and memory performance. This makes this component ideal for generating big reports or working with large datasets. Your users won't need to wait long for their reports to be generated anymore. With GemBox.Spreadsheet users can read and write 1,000,000 rows within 4 seconds and with less than 256MB of RAM.. You can try the performance yourself with the Performance example. The following example shows how to export a  The process is similar to exporting a  You can try exporting a  The example creates a  GemBox.Spreadsheet allows you to write to various file formats using the same API:DataTable object to an Excel sheet or a DataSet object to an Excel file in C# and VB.NET. For that, you will use the GemBox.Spreadsheet library that supports the most popular spreadsheet file formats (XLS, XLSX, ODS, CSV).Export DataTable to an Excel sheet
DataTable in an Excel sheet, call the InsertDataTable method. You can use the InsertDataTableOptions to customize the export of data from a DataTable to anExcelWorksheet such as:ColumnHeaders - Use it to specify whether to insert column headers in the output, or not.StartRow and StartColumn - Define the position where to insert DataTable.DataTableCellToExcelCellConverting - An event that fires when converting a DataTable cell value to an ExcelCell value allowing you to apply settings like cell style, format, and similar.Try exporting a DataTable online
DataTable to an Excel file with the interactive example below. Apart from Excel, you can choose other output file formats, supported by the GemBox.Spreadsheet component.DataTable object, fills it with data, inserts it into an ExcelFile instance and saves it to Excel, or to a file format of your choice. After clicking on Run example, the C#/VB.NET code will be compiled and executed with only .NET framework and the GemBox.Spreadsheet component.using GemBox.Spreadsheet;
using System.Data;
class Program
{
    static void Main()
    {
        // If you are using the Professional version, enter your serial key below.
        SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
        var workbook = new ExcelFile();
        var worksheet = workbook.Worksheets.Add("DataTable to Sheet");
        var dataTable = new DataTable();
        dataTable.Columns.Add("ID", typeof(int));
        dataTable.Columns.Add("FirstName", typeof(string));
        dataTable.Columns.Add("LastName", typeof(string));
        dataTable.Rows.Add(new object[] { 100, "John", "Doe" });
        dataTable.Rows.Add(new object[] { 101, "Fred", "Nurk" });
        dataTable.Rows.Add(new object[] { 103, "Hans", "Meier" });
        dataTable.Rows.Add(new object[] { 104, "Ivan", "Horvat" });
        dataTable.Rows.Add(new object[] { 105, "Jean", "Dupont" });
        dataTable.Rows.Add(new object[] { 106, "Mario", "Rossi" });
        worksheet.Cells[0, 0].Value = "DataTable insert example:";
        // Insert DataTable to an Excel worksheet.
        worksheet.InsertDataTable(dataTable,
            new InsertDataTableOptions()
            {
                ColumnHeaders = true,
                StartRow = 2
            });
        workbook.Save("DataTable to Sheet.%OutputFileType%");
    }
}
Imports GemBox.Spreadsheet
Imports System.Data
Module Program
    Sub Main()
        ' If you are using the Professional version, enter your serial key below.
        SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY")
        Dim workbook = New ExcelFile
        Dim worksheet = workbook.Worksheets.Add("DataTable to Sheet")
        Dim dataTable = New DataTable
        dataTable.Columns.Add("ID", Type.GetType("System.Int32"))
        dataTable.Columns.Add("FirstName", Type.GetType("System.String"))
        dataTable.Columns.Add("LastName", Type.GetType("System.String"))
        dataTable.Rows.Add(New Object() {100, "John", "Doe"})
        dataTable.Rows.Add(New Object() {101, "Fred", "Nurk"})
        dataTable.Rows.Add(New Object() {103, "Hans", "Meier"})
        dataTable.Rows.Add(New Object() {104, "Ivan", "Horvat"})
        dataTable.Rows.Add(New Object() {105, "Jean", "Dupont"})
        dataTable.Rows.Add(New Object() {106, "Mario", "Rossi"})
        worksheet.Cells(0, 0).Value = "DataTable insert example:"
        ' Insert DataTable to an Excel worksheet.
        worksheet.InsertDataTable(dataTable,
            New InsertDataTableOptions() With
            {
                .ColumnHeaders = True,
                .StartRow = 2
            })
        workbook.Save("DataTable to Sheet.%OutputFileType%")
    End Sub
End Module

Export DataTable performance
Export DataSet to Excel file
DataSet object to an Excel file in C# or VB.NET.DataTable to a sheet. The only difference is that you need to iterate through every DataTable in a DataSet. For each DataTable, you can create an empty sheet, and then insert the DataTable into the sheet.Try exporting DataSet online
DataSet into an Excel file using the interactive example below. Apart from Excel, you can choose other output file formats, supported by the GemBoxSpreadsheet library.DataSet object, fills it with data, inserts it into an ExcelFile instance, and saves it to Excel , or file format of your choice. After clicking on Run example, the C#/VB.NET code will be compiled and executed with only .NET framework and the GemBox.Spreadsheet library.using GemBox.Spreadsheet;
using System.Data;
class Program
{
    static void Main()
    {
        // If you are using the Professional version, enter your serial key below.
        SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");
        // Create test DataSet with five DataTables
        DataSet dataSet = new DataSet();
        for (int i = 0; i < 5; i++)
        {
            DataTable dataTable = new DataTable("Table " + (i + 1));
            dataTable.Columns.Add("ID", typeof(int));
            dataTable.Columns.Add("FirstName", typeof(string));
            dataTable.Columns.Add("LastName", typeof(string));
            dataTable.Rows.Add(new object[] { 100, "John", "Doe" });
            dataTable.Rows.Add(new object[] { 101, "Fred", "Nurk" });
            dataTable.Rows.Add(new object[] { 103, "Hans", "Meier" });
            dataTable.Rows.Add(new object[] { 104, "Ivan", "Horvat" });
            dataTable.Rows.Add(new object[] { 105, "Jean", "Dupont" });
            dataTable.Rows.Add(new object[] { 106, "Mario", "Rossi" });
            dataSet.Tables.Add(dataTable);
        }
        // Create and fill a sheet for every DataTable in a DataSet
        var workbook = new ExcelFile();
        foreach (DataTable dataTable in dataSet.Tables)
        {
            ExcelWorksheet worksheet = workbook.Worksheets.Add(dataTable.TableName);
            // Insert DataTable to an Excel worksheet.
            worksheet.InsertDataTable(dataTable,
                new InsertDataTableOptions()
                {
                    ColumnHeaders = true
                });
        }
        workbook.Save("DataSet to Excel file.%OutputFileType%");
    }
}
Imports GemBox.Spreadsheet
Imports System.Data
Module Program
    Sub Main()
        ' If you are using the Professional version, enter your serial key below.
        SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY")
        ' Create test DataSet with five DataTables
        Dim dataSet = New DataSet
        For value As Integer = 0 To 4
            Dim dataTable = New DataTable
            dataTable.Columns.Add("ID", Type.GetType("System.Int32"))
            dataTable.Columns.Add("FirstName", Type.GetType("System.String"))
            dataTable.Columns.Add("LastName", Type.GetType("System.String"))
            dataTable.Rows.Add(New Object() {100, "John", "Doe"})
            dataTable.Rows.Add(New Object() {101, "Fred", "Nurk"})
            dataTable.Rows.Add(New Object() {103, "Hans", "Meier"})
            dataTable.Rows.Add(New Object() {104, "Ivan", "Horvat"})
            dataTable.Rows.Add(New Object() {105, "Jean", "Dupont"})
            dataTable.Rows.Add(New Object() {106, "Mario", "Rossi"})
            dataSet.Tables.Add(dataTable)
        Next
        ' Create and fill a sheet for every DataTable in a DataSet
        Dim workbook = New ExcelFile
        For Each dataTable As DataTable In dataSet.Tables
            Dim worksheet = workbook.Worksheets.Add(dataTable.TableName)
            ' Insert DataTable to an Excel worksheet.
            worksheet.InsertDataTable(dataTable,
                New InsertDataTableOptions() With
                {
                    .ColumnHeaders = True
                })
        Next
        workbook.Save("DataSet to Excel file.%OutputFileType%")
    End Sub
End Module

Supported Excel file formats
