Asp.net mvc 5 EPPlus存储过程到Excel
请给我一个意见,如何使自动表格标题(第1行)? 我从互联网上获取了一些代码,并根据自己的需要进行了调整 tehre是我可以自动创建表的代码的一部分吗 我写道:Asp.net mvc 5 EPPlus存储过程到Excel,asp.net-mvc-5,epplus,Asp.net Mvc 5,Epplus,请给我一个意见,如何使自动表格标题(第1行)? 我从互联网上获取了一些代码,并根据自己的需要进行了调整 tehre是我可以自动创建表的代码的一部分吗 我写道: public void GetExcel() { StatusPipelineMerge merge = new StatusPipelineMerge(); var list = merge.Procedure1(); using (var excelPackage = new
public void GetExcel()
{
StatusPipelineMerge merge = new StatusPipelineMerge();
var list = merge.Procedure1();
using (var excelPackage = new ExcelPackage())
{
excelPackage.Workbook.Properties.Author = "Web App";
excelPackage.Workbook.Properties.Title = "Export from the Web";
var sheet = excelPackage.Workbook.Worksheets.Add("Export Results");
// output a line for the headers
//CreateHeader(sheet);
sheet.Name = "export results";
// all indexes start at 1
var rowIndex = 2;
foreach (var item in list)
{
var col = 1;
sheet.Cells[1, 1].Value = "Client Name";
sheet.Cells[1, 2].Value = "Field of Cooperation";
sheet.Cells[1, 3].Value = "Project Value HR";
sheet.Cells[1, 4].Value = "Project Value Money (EUR)";
sheet.Cells[1, 5].Value = "Comment";
sheet.Cells[1, 6].Value = "Sales Responsible";
sheet.Cells[1, 7].Value = "Created Date";
sheet.Cells[1, 8].Value = "Modified Date";
sheet.Cells[1, 9].Value = "Status";
sheet.Cells[rowIndex, col++].Value = item.ClientName;
sheet.Cells[rowIndex, col++].Value = item.NameFCO;
sheet.Cells[rowIndex, col++].Value = item.ProjectValueHr;
sheet.Cells[rowIndex, col++].Value = item.ProjectValueMoney;
sheet.Cells[rowIndex, col++].Value = item.CommentPipeline;
sheet.Cells[rowIndex, col++].Value = item.Name+" "+item.Surname;
sheet.Cells[rowIndex, col++].Value = item.CreatedTimeSTamp;
sheet.Cells[rowIndex, col++].Value = item.ModifiedTimeStamp;
sheet.Cells[rowIndex, col++].Value = item.JobStatusName;
rowIndex++;
}
sheet.Column(3).Style.Numberformat.Format = "$#,##0.00";
sheet.Column(4).Style.Numberformat.Format = "$#,##0.00";
// You could just save on ExcelPackage here but we need it in
// memory to stream it back to the browser
Response.ClearContent();
Response.BinaryWrite(excelPackage.GetAsByteArray());
Response.AddHeader("content-disposition",
"attachment;filename=results.xlsx");
Response.ContentType = "application/excel";
Response.Flush();
Response.End();
}
}
所以,我只需要将它包装在带有标题/过滤器的表中。谢谢如果您是从存储的进程获取数据,为什么不使用
DataTable
和函数LoadFromDataTable()
?有很多例子,这里有一个:
请记住,如果它是一个非常大的表,那么该函数会带来性能损失,您最好坚持使用for
循环
另一个选项是使用LoadFromCollection
,该选项还可以打印标题: