C#EPPlus创建许多选项卡会导致空引用异常

时间:2017-05-12 07:41:25

标签: c# excel epplus

我发现使用EPPlus库生成Excel文件时出现了一个奇怪的错误。场景很简单 - 我需要在一个excel文件中有很多工作表。但是,在调用GetAsByteArray()方法时,我会得到null reference exception

using (ExcelPackage xml = new ExcelPackage())
{
    foreach (var mainValueItem in values)
    {
        using (ExcelWorksheet worksheet = xml.Workbook.Worksheets.Add($"sheet {mainValueItem.ID}"))
        {
            worksheet.Cells[1, 1].Value = "Date";
        }
    }
    return ctr.File(xml.GetAsByteArray(), MediaTypeNames.Application.Octet);
}

我可以在两个工作表中看到,未加载Cells属性,如下所示: enter image description here

那么,如何创建许多工作表?

1 个答案:

答案 0 :(得分:0)

我找到了答案 - 我们不应该使用

using (ExcelWorksheet worksheet = xml.Workbook.Worksheets.Add($"sheet {mainValueItem.ID}"))

在那种情况下。相反,只需声明一个变量

var worksheet = xml.Workbook.Worksheets.Add($"sheet {mainValueItem.ID}");

现在它可以工作,我可以在生成的文件中看到多个标签。

快乐的编码!