Вот вся рабочая демонстрация:
Модель:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
}
Контроллер:
[HttpGet]
public IActionResult ExportExcel()
{
Student s = new Student();
var data = new List<Student>() {
new Student(){ Id=1,Name="aaa"},
new Student(){ Id=2,Name="bbb"},
new Student(){ Id=3,Name="ccc"},
};
var myField = s.GetType().GetProperties();
using (var workbook = new XLWorkbook())
{
var worksheet = workbook.Worksheets.Add("Excel1");
var currentRow = 1;
for (int i = 0; i < myField.Length; i++)
{
worksheet.Cell(currentRow, i + 1).Value = myField[i].Name;
}
for (int index = 1; index <= data.Count; index++)
{
worksheet.Cell(index + 1, 1).Value = data[index - 1].Id;
worksheet.Cell(index + 1, 2).Value = data[index - 1].Name;
}
using (var stream = new MemoryStream())
{
workbook.SaveAs(stream);
var content = stream.ToArray();
return File(
content,
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"users.xlsx");
}
}
}
Результат: введите описание изображения здесь