
/// <summary>
/// 导出Excel(使用模板)
/// </summary>
/// <returns></returns>
[HttpGet]
public IActionResult ExportExcelByTemplate()
{
try
{
IWorkbook wb = null;
var template = Directory.GetCurrentDirectory() + @"\wwwroot\Template\template.xlsx";
// 按模板内容创建 IWorkbook
using(FileStream fs = new FileStream(template, FileMode.OpenOrCreate))
{
wb = new XSSFWorkbook(fs);
}
var list = db.Stu.Where(s => s.IsOk).ToList();
ISheet sheet = wb.GetSheetAt(0);
int i = 1;
IRow row = null;
foreach (var item in list)
{
row = sheet.CreateRow(i);
row.CreateCell(0).SetCellValue(item.StuName);
row.CreateCell(1).SetCellValue(item.Sex == 0 ? "男" : "女");
row.CreateCell(2).SetCellValue(double.Parse(item.Phone));
row.CreateCell(3).SetCellValue(item.CId);
// 日期格式的导出
ICell cell = row.CreateCell(4);
ICellStyle style = wb.CreateCellStyle();
IDataFormat format = wb.CreateDataFormat();
style.DataFormat = format.GetFormat("yyyy-MM-dd");
cell.CellStyle = style;
cell.SetCellValue(DateTime.Parse(item.InDate.ToString("yyyy-MM-dd")));
row.CreateCell(5).SetCellValue((double)item.JF);
row.CreateCell(6).SetCellValue(item.Pic);
row.CreateCell(7).SetCellValue(item.State);
i++;
}
byte[] buffer = null;
using (MemoryStream ms = new MemoryStream())
{
wb.Write(ms);
buffer = ms.ToArray();
}
// .xlsx文件对应的Mime信息
var mime = new FileExtensionContentTypeProvider().Mappings[".xlsx"];
return File(buffer, mime, "学生信息.xlsx");
}
catch (Exception)
{
throw;
}
}

网址
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通