Step 1 : Download or Install "NPOI" Nuget from package manager & "Newtonsoft" Nuget
Step 2 : Get Data in your datatable like
DataTable dt1 = new DataTable();
dt1.Columns.Add("ID");
dt1.Columns.Add("Name");
DataRow dr = dt.NewRow();
dr["ID"] = "1";
dr["Name"] = "Test";
dt.Rows.Add(dr);
Step 3 : Create class
public class SummaryClass
{
public string ID { get; set; }
public string Name { get; set; }
}
Step 3 :
using NPOI.HSSF.UserModel;
using Newtonsoft.Json;
// Create Work Book
var workbook = new HSSFWorkbook();
// Add name of sheet
var sheet = workbook.CreateSheet("Daily Summary");
// convert your datatable to list
string JSON = JsonConvert.SerializeObject(dt);
var items = JsonConvert.DeserializeObject<List<SummaryClass>>(JSON);
// Create column & header string array
var columns = new[] { "ID", "Name" }; // Your DataTable Fields Name
var headers = new[] { "Sr. No.", "Client Name" }; // Header display name in excel
// Create row in excel sheet
var headerRow = sheet.CreateRow(0);
//create header
for (int i = 0; i < columns.Length; i++)
{
var cell = headerRow.CreateCell(i);
cell.SetCellValue(headers[i]);
}
//fill content
for (int i = 0; i < items.Count; i++)
{
var rowIndex = i + 1;
var row = sheet.CreateRow(rowIndex);
for (int j = 0; j < columns.Length; j++)
{
var cell = row.CreateCell(j);
var o = items[i];
cell.SetCellValue(o.GetType().GetProperty(columns[j]).GetValue(o, null).ToString());
}
}
// Store data in memory strem
var stream = new MemoryStream();
workbook.Write(stream);
//write to file
FileStream file = new FileStream("Your File Save Path", FileMode.CreateNew, FileAccess.Write);
stream.WriteTo(file);
file.Close();
stream.Close();
Step 2 : Get Data in your datatable like
DataTable dt1 = new DataTable();
dt1.Columns.Add("ID");
dt1.Columns.Add("Name");
DataRow dr = dt.NewRow();
dr["ID"] = "1";
dr["Name"] = "Test";
dt.Rows.Add(dr);
Step 3 : Create class
public class SummaryClass
{
public string ID { get; set; }
public string Name { get; set; }
}
Step 3 :
using NPOI.HSSF.UserModel;
using Newtonsoft.Json;
// Create Work Book
var workbook = new HSSFWorkbook();
// Add name of sheet
var sheet = workbook.CreateSheet("Daily Summary");
// convert your datatable to list
string JSON = JsonConvert.SerializeObject(dt);
var items = JsonConvert.DeserializeObject<List<SummaryClass>>(JSON);
// Create column & header string array
var columns = new[] { "ID", "Name" }; // Your DataTable Fields Name
var headers = new[] { "Sr. No.", "Client Name" }; // Header display name in excel
// Create row in excel sheet
var headerRow = sheet.CreateRow(0);
//create header
for (int i = 0; i < columns.Length; i++)
{
var cell = headerRow.CreateCell(i);
cell.SetCellValue(headers[i]);
}
//fill content
for (int i = 0; i < items.Count; i++)
{
var rowIndex = i + 1;
var row = sheet.CreateRow(rowIndex);
for (int j = 0; j < columns.Length; j++)
{
var cell = row.CreateCell(j);
var o = items[i];
cell.SetCellValue(o.GetType().GetProperty(columns[j]).GetValue(o, null).ToString());
}
}
// Store data in memory strem
var stream = new MemoryStream();
workbook.Write(stream);
//write to file
FileStream file = new FileStream("Your File Save Path", FileMode.CreateNew, FileAccess.Write);
stream.WriteTo(file);
file.Close();
stream.Close();
You actually might want to check out the https://zetexcel.com/. It has Ability to save & load Excel files to & from streams.
ReplyDeleteYou can try to use ZetExcel.com. It is very helpful and easy to use.
ReplyDelete