我有一个MVC视图,能正确地显示模型。现在被要求在该页面上添加导出到Excel的功能,我听说EPPlus并尝试了一下。从这个网站上,我以为我找到了一个简单的解决方案。
在根据我的需求做出更改后,我开发了这个功能。当我在视图中测试功能时,它能正常工作。我点击html actionlink,Excel文件会正确保存。
然而,当我将网站发布并以普通用户身份进行测试时,我遇到了可怕的“Null Exception”错误:
那么,我在代码示例中做错了什么明显的事情吗?
在根据我的需求做出更改后,我开发了这个功能。当我在视图中测试功能时,它能正常工作。我点击html actionlink,Excel文件会正确保存。
public void ExportToExcel(IEnumerable<FourCourseAudit> audit)
{
string pathUser = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
string pathDownload = Path.Combine(pathUser, "Documents");
FileInfo newFile = new FileInfo(pathDownload + "\\MyExport.xslx");
using (var excelFile = new ExcelPackage(newFile))
{
var worksheet = excelFile.Workbook.Worksheets.FirstOrDefault(x=>x.Name=="Sheet1");
if (worksheet == null)
{
worksheet.Workbook.Worksheets.Add("Sheet1");
}
worksheet.Cells["A1"].LoadFromCollection(Collection:audit, PrintHeaders:true);
excelFile.Save();
}
}
然而,当我将网站发布并以普通用户身份进行测试时,我遇到了可怕的“Null Exception”错误:
System.NullReferenceException: Object reference not set to an instance of an object.
可能的问题原因是:
- 空工作表
- 空newFile
- 空审核
那么,我在代码示例中做错了什么明显的事情吗?