【问题标题】:EPPlus error after image added, Value cannot be null, Parameter name: contentType添加图像后EPPlus错误,值不能为空,参数名称:contentType
【发布时间】:2012-12-12 15:44:50
【问题描述】:

我使用 EPPlus 创建了一个 excel 文件,一切正常,直到我尝试将图像添加到我的工作表并收到错误消息

(值不能为空,参数名称:contentType)

在下面一行:

package.Workbook.Worksheets.Add("MasterPackingList", createPackingListExcel(dt));

当下面的代码部分被删除时,它可以工作

System.Drawing.Image logo = System.Drawing.Image.FromFile(Server.MapPath("~/Images/")+"PLLogo_Nestle.png");
var addedLogo = worksheet.Drawings.AddPicture("Logo", logo);

以下是我向用户提供 excel 的方式:

Response.Clear();
Response.AddHeader("content-disposition", "attachment;  filename=file.xlsx");
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.BinaryWrite(package.GetAsByteArray());
Response.End();

【问题讨论】:

  • 您添加图像的方式很好。我想知道在哪个语句中抛出了异常?
  • 我找到了修复方法,但没有找到错误背后的原因。请检查我的答案。

标签: c# excel epplus


【解决方案1】:

一切都是正确的,但是当一个方法(在我的例子中是 createPackingListExcel)返回工作表时,就会发生这个神秘的错误。

所以我没有返回工作表,而是将我的包作为参数发送给函数,并让工作表在函数 createPackingListExcel 中添加到包中,然后错误就消失了。有趣...

【讨论】:

  • 发现同样的问题,谢谢提示。最好将其作为函数中的参数传递,而不是返回工作表或包。
猜你喜欢
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
  • 2013-03-23
  • 1970-01-01
相关资源
最近更新 更多