EPPlus多个标签c#

时间:2014-04-04 12:12:40

标签: c# excel epplus

我正在使用EPPlus导出Excel。我已经完成了一些功能来获得“ExcelWorksheet”。我想在一个excel(每个标签一个)中使用它加入所有这些,但我不知道我该怎么做。

这是主要功能:

public ActionResult ExportReports(string sheetName)
{
    try
    {
        var req = GetRequest();
        var fileDownloadName = "OnlineReport.xlsx";
        var contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

        var package = new ExcelPackage();
        var ws1 = AnalysisByAirCarrier(package, req);
        var ws2 = Summary(package, req);

        var fileStream = new MemoryStream();
        package.SaveAs(fileStream);
        fileStream.Position = 0;
        var fsr = new FileStreamResult(fileStream, contentType);
        fsr.FileDownloadName = fileDownloadName;

        return fsr;
    }
    catch (Exception ex)
    {
        _logger.Error("Error ExportReports", ex);
    }
}

我想在不同标签的同一个文件中加入ws1和ws2。

注意:ws1和ws2是ExcelWorksheet对象

任何想法?

感谢。

2 个答案:

答案 0 :(得分:6)

应该能够将工作表的副本作为标签添加到工作簿中:

using(var package = new ExcelPackage())
{
    package.Workbook.Worksheets.Add("First worksheet 1", ws1);
    package.Workbook.Worksheets.Add("First worksheet 2", ws2);
    // Do something with the package
}

我不确定你在AnalysisByAirCarrierSummary做了什么。

我还没有测试过,但是添加空白工作表并对它们进行操作对我来说就像预期的那样(它创建了多个标签,我可以用内容填充)

[edit]:更新“第一个工作表”评论

答案 1 :(得分:1)

var groupedSheetList = UserData.GroupBy(u => u.date).Select(grp => grp.ToList 
()).ToList();
using (var package = new ExcelPackage ()) {
foreach (var item in groupedSheetList){
var workSheet = package.Workbook.Worksheets.Add (item[0].date);}}
相关问题