C# EPPlus 创建多个选项卡导致空引用异常
C# EPPlus create many tabs causes a null reference exception
我在使用 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);
}
我可以在两个工作表中看到,单元格 属性 未加载,如您在此处所见:
那么,如何创建多个工作表?
我找到了答案 - 我们不应该使用
using (ExcelWorksheet worksheet = xml.Workbook.Worksheets.Add($"sheet {mainValueItem.ID}"))
在那种情况下。相反,只需声明一个变量
var worksheet = xml.Workbook.Worksheets.Add($"sheet {mainValueItem.ID}");
现在可以了,我可以在生成的文件中看到多个选项卡。
编码愉快!
我在使用 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);
}
我可以在两个工作表中看到,单元格 属性 未加载,如您在此处所见:
那么,如何创建多个工作表?
我找到了答案 - 我们不应该使用
using (ExcelWorksheet worksheet = xml.Workbook.Worksheets.Add($"sheet {mainValueItem.ID}"))
在那种情况下。相反,只需声明一个变量
var worksheet = xml.Workbook.Worksheets.Add($"sheet {mainValueItem.ID}");
现在可以了,我可以在生成的文件中看到多个选项卡。
编码愉快!