c# - 创建 Excel 工作表时出现 NullReferenceException

标签 c# asp.net visual-studio-2010 nullreferenceexception excelpackage

我想填写一个 excel 文件,所以我使用 ExcelPackage:Office Open XML 格式。但我有一个错误。我的代码:

string fileName = "DBE_BAKIM_FORMU" + ".xlsx";
FileInfo fi = new FileInfo(HttpContext.Current.Server.MapPath("~/") + fileName);

using (ExcelPackage xlPackage = new ExcelPackage(fi))
{
    ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets[1];
    dbeDataContext db = new dbeDataContext();
    CAGRI c = (from x in db.CAGRIs where x.CagriID == ID select x).SingleOrDefault();
    USER u = (from x in db.USERs where x.UserID == Convert.ToInt32(Session["user"]) select x).SingleOrDefault();

    worksheet.Cell(6, 3).Value = c.TalepTarihi.ToShortDateString();
    worksheet.Cell(7, 3).Value = c.TalepTuru;
    worksheet.Cell(8, 3).Value = c.ModulAdi;
    worksheet.Cell(9, 3).Value = c.EkranRaporAdi;
    worksheet.Cell(10, 3).Value = c.VerilenSure;
    worksheet.Cell(11, 4).Value = c.USER.UserName + " " + c.USER.UserSurname;
    worksheet.Cell(12, 4).Value = Convert.ToString(c.USER.UserTel);
    worksheet.Cell(13, 3).Value = c.Aciklama;
    worksheet.Cell(16, 4).Value = u.UserName + " " + u.UserSurname;
    worksheet.Cell(18, 3).Value = Convert.ToString(c.DegerlendirmeTarih);
    worksheet.Cell(19, 3).Value = c.Degerlendirme;
    xlPackage.Save();
}

我这里有这个错误:xlPackage.Save();

我的错误是未将对象引用设置为对象的实例。

当我取出 xlPackage.Save(); 时,它可以工作并填充到 excel 文件中,但它不会保存。 为什么我会犯这个错误?

提前致谢..

最佳答案

将 ExcelWorksheet.cs 的第 562 行从:

XmlNode pageSetup = _worksheetXml.SelectSingleNode("//d:pageSetup", NameSpaceManager);

到:

XmlNode pageSetup = WorksheetXml.SelectSingleNode("//d:pageSetup", NameSpaceManager);

如果尚未访问工作表,则调用公共(public)访问器 WorksheetXml 而不是私有(private)类变量可以正确初始化它。

关于c# - 创建 Excel 工作表时出现 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11965131/

相关文章:

c# - 自动测试属性 getter/setter

c# - 从 DataView 中清除排序

c# - 程序集绑定(bind)重定向 : How and Why?

c# - ASP.NET Core 2.0 Azure Webjobs SDK 添加项目引用引发异常

visual-studio-2010 - 使用哪一个,Visual Studio 安装程序或 Inno 安装程序?

visual-studio-2010 - Asp.net 4.0尚未注册

c# - 为什么这里不使用LINQ ToList?

javascript - 用户控件中的 Css 规则

c++ - 在 asp.net 中使用 c++ dll - 异常 :Could not load file or assembly

c++ - 在visual 2010上编译qt项目链接错误