这行代码意味着什么,我该如何修复错误?

时间:2016-04-12 13:47:36

标签: c# excel

我在这行代码上有错误,我无法进入它,因为错误会立即弹出。有谁能告诉我这行代码到底是做什么的?

var image = ws2.Drawings.AddPicture(
    imagesLocations[i].Name, 
    Image.FromFile(imagesLocations[i].Tests
                                     .FirstOrDefault(t => t.IsReference)
                                     .ImagePath));

错误:

  

抛出异常:'System.IO.FileNotFoundException'   System.Drawing.dll程序

     

其他信息:C:\ Users \ ..“完整路径”.. \ Initial.png

一些声明:

ExcelWorksheet ws2 = package.Workbook.Worksheets.Add("Images");

// this is a list of locations, and "location" is a custom class                        
var imagesLocations = SelectedSession.GetTests()
    .Where(t => t.IsReference)
    .Select(t => t.Location)
    .OrderBy(t => t.DateCreated)
    .ThenBy(t => t.Name)
    .ToList();

Test是书面类的自定义对象

在特定情况下

IsReferenceBoolean的本地Test

ImagePathTest

的本地字符串

所以错误是它试图从路径中获取图像以将其放入excel文件中。但是,图像不存在。我需要了解这行代码,以便我可以防止它发生。任何有关我如何做到这一点的帮助都非常有帮助。拜托,谢谢

1 个答案:

答案 0 :(得分:1)

正如@HimBromBeere建议的那样,他是对的。

这就是我所做的,让我检查并运行错误:

var temp = imagesLocations[i].Tests.FirstOrDefault(t => t.IsReference).ImagePath;
if (File.Exists(temp))
{
    var temp2 = Image.FromFile(temp);
    var image = ws2.Drawings.AddPicture(imagesLocations[i].Name, temp2);
    image.SetSize(375, 375);
    image.SetPosition(i, 0, 1, 0);
}