Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ to Excel查询中的输入字符串格式不正确错误_C#_Excel_Linq_Linq To Excel - Fatal编程技术网

C# LINQ to Excel查询中的输入字符串格式不正确错误

C# LINQ to Excel查询中的输入字符串格式不正确错误,c#,excel,linq,linq-to-excel,C#,Excel,Linq,Linq To Excel,使用LINQ to excel解析excel文件时,我发现输入字符串的格式不正确: var excel = new ExcelQueryFactory(ExcelFileURI); excel.DatabaseEngine = DatabaseEngine.Ace; var items = excel.Worksheet<StatusPedido>(sheetName); List<StatusPedido> list = items.ToList(); //Erro

使用LINQ to excel解析excel文件时,我发现输入字符串的格式不正确:

var excel = new ExcelQueryFactory(ExcelFileURI);
excel.DatabaseEngine = DatabaseEngine.Ace;

var items = excel.Worksheet<StatusPedido>(sheetName);

List<StatusPedido> list = items.ToList(); //Error points here
StatusPedido是我自己的类,它有5个int属性,每个属性对应excel文件中的一列,这可能会导致此错误,但我找不到错误的来源

该查询在枚举之前不会执行,并且使用.ToList方法不会显示哪一项甚至是导致错误的excel行,因此我不确定在哪里查找

是否有一种方法可以逐个迭代“项”IQueryable,以找到哪一项未能转换到StatusPedido中,从而确定excel中哪一行/单元格引发此错误?

因为ListaItems是StatusPedido的列表

尝试:


在没有ToList的情况下使用foreach进行迭代应该可以让您一步一步地遍历每一个foreach。调用foreach会使程序将整个IQueryable作为StatusPedido项加载到内存中,这反过来会在某个地方触发异常,但不会指定在哪一行或哪一个值上。。。
List<StatusPedido> ListaItems;

        Console.WriteLine("Getting articles from excel file");
        var excel = new ExcelQueryFactory(ExcelFileURI);
        excel.DatabaseEngine = DatabaseEngine.Ace;

        //var Items = from c in excel.Worksheet<StatusPedido>(sheetName)
        var Items = from c in excel.Worksheet<StatusPedido>(sheetName)
                    select c;
foreach(var x in items)
{
StatusPedido objData=new StatusPedido();
objData.val1=x.val1;
.
.
.
ListaItems.Add(objData);

}
return ListaItems;