Вот рабочая демонстрация о том, как экспортировать данные с помощью asp. net core:
1. Загрузите пакет EPPLUS на Nuget: ![enter image description here](https://i.stack.imgur.com/tS5aE.png)
2.Razor View (Index.cs html):
<form>
<input type="submit" asp-action="Export" value="Export" />
</form>
3.Controller:
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
[HttpGet]
public IActionResult Export()
{
var students = new[]
{
new {
Id = "101", Name = "Vivek", Address = "Hyderabad"
},
new {
Id = "102", Name = "Ranjeet", Address = "Hyderabad"
},
new {
Id = "103", Name = "Sharath", Address = "Hyderabad"
},
new {
Id = "104", Name = "Ganesh", Address = "Hyderabad"
},
new {
Id = "105", Name = "Gajanan", Address = "Hyderabad"
},
new {
Id = "106", Name = "Ashish", Address = "Hyderabad"
}
};
var stream = new MemoryStream();
using (var package = new ExcelPackage(stream))
{
var workSheet = package.Workbook.Worksheets.Add("Sheet1");
workSheet.TabColor = System.Drawing.Color.Black;
workSheet.DefaultRowHeight = 12;
workSheet.Cells.LoadFromCollection(students, true);
package.Save();
}
stream.Position = 0;
string excelName = "studentsRecord.xlsx";
return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", excelName);
}
}
Если вы хотите показать тот же результат, добавьте новый столбец, который не находится в students
, используйте следующий код:
[HttpGet]
public IActionResult Export()
{
var students = ...;
var stream = new MemoryStream();
using (var package = new ExcelPackage(stream))
{
var workSheet = package.Workbook.Worksheets.Add("Sheet1");
workSheet.TabColor = System.Drawing.Color.Black;
workSheet.DefaultRowHeight = 12;
//workSheet.Cells.LoadFromCollection(students, true);
//Header of table
//
workSheet.Row(1).Height = 20;
workSheet.Row(1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
workSheet.Row(1).Style.Font.Bold = true;
workSheet.Cells[1, 1].Value = "S.No";
workSheet.Cells[1, 2].Value = "Id";
workSheet.Cells[1, 3].Value = "Name";
workSheet.Cells[1, 4].Value = "Address";
//Body of table
//
int recordIndex = 2;
foreach (var student in students)
{
workSheet.Cells[recordIndex, 1].Value = (recordIndex - 1).ToString();
workSheet.Cells[recordIndex, 2].Value = student.Id;
workSheet.Cells[recordIndex, 3].Value = student.Name;
workSheet.Cells[recordIndex, 4].Value = student.Address;
recordIndex++;
}
workSheet.Column(1).AutoFit();
workSheet.Column(2).AutoFit();
workSheet.Column(3).AutoFit();
workSheet.Column(4).AutoFit();
package.Save();
}
stream.Position = 0;
string excelName = "studentsRecord.xlsx";
return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", excelName);
}
Результат: ![enter image description here](https://i.stack.imgur.com/pbJFy.gif)