Asp.net mvc 5 EPPlus存储过程到Excel

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

请给我一个意见,如何使自动表格标题(第1行)? 我从互联网上获取了一些代码,并根据自己的需要进行了调整

tehre是我可以自动创建表的代码的一部分吗

我写道:

 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
,该选项还可以打印标题: