excel - 生成excel文件并导出数据
问题描述
谁能帮我在 asp .net core 中生成 excel 文件并在上面导出模型类?我正在添加我尝试过但不知道它是否正确的方法
[HttpPost]
public IActionResult ExportExcel()
{
var myField = typeof(Cover).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;
}
using (var stream = new MemoryStream())
{
workbook.SaveAs(stream);
var content = stream.ToArray();
return File(
content,
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"users.xlsx");
}
}
}
解决方案
这是整个工作演示:
模型:
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");
}
}
}
推荐阅读
- javascript - 如何在不更改 require 语句的情况下将 Node 代码库迁移到 TypeScript?
- c# - 如何在 Xamarin.Forms 中显示 Telerik RadMaskedInput 控件的数字键盘
- api - Kibana Rest API 重定向到登录
- scala - Spark scala 从列表中选择多列和单列
- javascript - 难以通过函数调用进行迭代 - 第一类函数
- python - Pandas DataFrame 按来自不同 DataFrame 的值计数
- r - 将不同的 grViz 组合成一个图
- sql - varchar 列上的葡萄牙语重音问题
- css - 来自父级的 Angular css 样式子级
- c - 使用类型修饰符(有符号)比较