using System.Collections.Generic;
using NPOI.XSSF.UserModel;
var persons = new List<UserAccount>()
new UserAccount {ID=1, Name="ABCD"},
new UserAccount {ID=2, Name="PQRS"},
new UserAccount {ID=3, Name="XYZZ"},
new UserAccount {ID=4, Name="LMNO"}
var table = (DataTable)JsonConvert.DeserializeObject(JsonConvert.SerializeObject(persons), (typeof(DataTable)));
var memoryStream = new MemoryStream();
using (var fs = new FileStream("C:\\Users\\cbrandao\\Desktop\\Result.xlsx", FileMode.Create, FileAccess.Write))
var workbook = new XSSFWorkbook();
var excelSheet = workbook.CreateSheet("Sheet1");
var columns = new List<string>();
var row = excelSheet.CreateRow(0);
foreach (DataColumn column in table.Columns)
columns.Add(column.ColumnName);
row.CreateCell(columnIndex).SetCellValue(column.ColumnName);
Console.WriteLine(string.Join(" - ", table.Columns.Cast<DataColumn>().Select(x => x.ColumnName)));
foreach (DataRow dsrow in table.Rows)
row = excelSheet.CreateRow(rowIndex);
foreach (String col in columns)
row.CreateCell(cellIndex).SetCellValue(dsrow[col].ToString());
Console.WriteLine(string.Join(" - ", dsrow.ItemArray));
public int ID { get; set; }
public string Name { get; set; }