我正在为项目使用EPPLus,并且试图在内存中创建一个Excel工作表来对其进行模拟。
我用于单元测试的类有一个方法
public ExcelPackage GetExcelPackage()
{
using (var package = new ExcelPackage())
{
ExcelWorksheet returnWorksheet = package.Workbook.Worksheets.Add("worksheet");
returnWorksheet.Cells[1, 1].Value = "043";
returnWorksheet.Cells[1, 2].Value = "21677";
returnWorksheet.Cells[1, 3].Value = "100";
returnWorksheet.Cells[1, 4].Value = String.Empty;
returnWorksheet.Cells[1, 5].Value = "12292016";
returnWorksheet.Cells[1, 6].Value = String.Empty;
return package;
}
}
在我的InputFileController中,调用package.Workbook.Worksheets.First时出现空对象错误。
public static IInputFileRepository ReadExcelFile(IFileDataSource excelFileDataSource)
{
FileInfo fileToRead = new FileInfo(excelFileDataSource.InputFile);
List<string> lines = new List<string>();
ExcelPackage package = excelFileDataSource.GetExcelPackage();
ExcelWorksheet worksheet = package.Workbook.Worksheets.First();
知道我可能做错了什么吗?
答案 0 :(得分:0)
因此,看来我有一个不相关的错误。不是让我的IFileDataSource返回ExcelPackage,而是让它返回文件名,然后使用EPPlus打开并从InputController读取该文件。
passowrd
答案 1 :(得分:0)
空引用错误是由于对象的处置而发生的-这是由于代码块周围的using
语句引起的。
我把我的答案放在这里,以防万一有人来问到根本原因。