Export DataTable to Excel with formatting in C#, VB.NET.
Steps to export DataTable to Excel with formatting, programmatically:
Step 1: Create a new C# console application project.
Create a new C# console application
Step 2: Install the Syncfusion.XlsIO.WinForms NuGet package as reference to your .NET Framework application from NuGet.org.
Install NuGet package
Step 3: Include the following namespace in the Program.cs file.
C#
using Syncfusion.XlsIO;
using System.Data;
VB.NET
Imports Syncfusion.XlsIO
C#
//Create an instance of ExcelEngine
using (ExcelEngine excelEngine = new ExcelEngine())
{
//Initialize application object
IApplication application = excelEngine.Excel;
//Set the default application version as Excel 2016
application.DefaultVersion = ExcelVersion.Excel2016;
//Create a new workbook
IWorkbook workbook = application.Workbooks.Create(1);
//Access first worksheet from the workbook instance
IWorksheet worksheet = workbook.Worksheets[0];
//Exporting DataTable to worksheet
DataTable dataTable = GetDataTable();
worksheet.ImportDataTable(dataTable, true, 1, 1);
worksheet.UsedRange.AutofitColumns();
//Save the workbook to disk in xlsx format
workbook.SaveAs("Output.xlsx");
}
VB.NET
'Create an instance of ExcelEngine
Using excelEngine As ExcelEngine = New ExcelEngine()
'Initialize application object
Dim application As IApplication = excelEngine.Excel
'Set the default application version as Excel 2016
application.DefaultVersion = ExcelVersion.Excel2016
'Create a new workbook
Dim workbook As IWorkbook = application.Workbooks.Create(1)
'Access first worksheet from the workbook instance
Dim worksheet As IWorksheet = workbook.Worksheets(0)
'Exporting DataTable to worksheet
Dim dataTable As DataTable = GetDataTable()
worksheet.ImportDataTable(dataTable, True, 1, 1)
worksheet.UsedRange.AutofitColumns()
'Save the workbook to disk in xlsx format
workbook.SaveAs("Output.xlsx")
End Using
Step 5: Load the DataTable using the following simple static method.
C#
private static DataTable GetDataTable()
{
//Create a DataTable with four columns
DataTable table = new DataTable();
table.Columns.Add("Dosage in %", typeof(string));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
table.Columns.Add("Price in $", typeof(string));
//Add five DataRows
table.Rows.Add("25%", "Indocin", "David", DateTime.Now,"$10");
table.Rows.Add("50%", "Enebrel", "Sam", DateTime.Now,"$15");
table.Rows.Add("10%", "Hydralazine", "Christoff", DateTime.Now,"$20");
table.Rows.Add("21%", "Combivent", "Janet", DateTime.Now,"$25");
table.Rows.Add("100%", "Dilantin", "Melanie", DateTime.Now,"$30");
return table;
}
VB.NET
Private Function GetDataTable() As DataTable
'Create a DataTable with four columns
Dim table As DataTable = New DataTable()
table.Columns.Add("Dosage in %", GetType(String))
table.Columns.Add("Drug", GetType(String))
table.Columns.Add("Patient", GetType(String))
table.Columns.Add("Date", GetType(DateTime))
table.Columns.Add("Price in $", GetType(String))
'Add five DataRows
table.Rows.Add("25%", "Indocin", "David", DateTime.Now, "$10")
table.Rows.Add("50%", "Enebrel", "Sam", DateTime.Now, "$15")
table.Rows.Add("10%", "Hydralazine", "Christoff", DateTime.Now, "$20")
table.Rows.Add("21%", "Combivent", "Janet", DateTime.Now, "$25")
table.Rows.Add("100%", "Dilantin", "Melanie", DateTime.Now, "$30")
Return table
End Function
By executing the program, you will get the output
Refer here
An online sample
link to
See Also:
How to preserve data types during ImportDataTable in C#, VB.NET?
Note:
Starting with v16.2.0.x, if you reference Syncfusion assemblies from trial setup or from the NuGet feed, include a license key in your projects. Refer the link to learn about generating and registering Syncfusion license key in your application to use the components without trail message.
You can refer to our
For current customers, you can check out our components from the License and Downloads page. If you are new to Syncfusion, you can try our 30-day free trial to check out our other controls.
If you have any queries or require clarifications, please let us know in the comments section below. You can also contact us through our support forums, Direct-Trac, or feedbackportal. We are always happy to assist you!