C# 为什么LinqToExcel在遇到“时返回null”-&引用;性格

C# 为什么LinqToExcel在遇到“时返回null”-&引用;性格,c#,linq-to-excel,C#,Linq To Excel,我使用LinqToExcel来检索一些信息,我可以从我的所有列中获取数据,除了一列。这是一个场景: 我有3个专栏: Code Name LastName 89 test1 test2 89-2 test3 test4 90 test5 test6 要获得我使用的值列表: var excel = new LinqToExcel.ExcelQueryFactory(path) var excelValues = excel.Worksheet<Shee

我使用LinqToExcel来检索一些信息,我可以从我的所有列中获取数据,除了一列。这是一个场景:

我有3个专栏:

Code   Name   LastName
 89    test1   test2
 89-2  test3   test4
 90    test5   test6
要获得我使用的值列表:

var excel = new LinqToExcel.ExcelQueryFactory(path)
var excelValues = excel.Worksheet<Sheet>("Sheet1").AsEnumerable().Where(p => !String.IsNullOrWhiteSpace(p.Code));

如果我把89-2改成89.2,它就行了。我有没有办法避开“-”这个字?或者我做错了什么。

LinqToExcel使用第二行来确定数据类型,89被视为一个数字,所有后续数据都被视为一个数字。在数字前添加一个单引号('),例如“89”强制excel将内容设置为文本


第一行用于将列名映射到类属性

在对象excel“excel.DatabaseEngine=DatabaseEngine.Ace;”之后包含此行

var excel=new LinqToExcel.ExcelQueryFactory(路径);
excel.DatabaseEngine=DatabaseEngine.Ace;
var excelValues=excel.Worksheet(“Sheet1”).AsEnumerable()。其中(p=>
!String.IsNullOrWhiteSpace(p.Code));

与论坛网站不同,我们不会在网站上使用“谢谢”或“感谢任何帮助”或签名。请参阅。在Excel文档中,尝试将该列的格式更改为文本。它不起作用,如果是这种情况,为什么它会与任何其他字母或数字一起工作?它只是不喜欢“-”符号。它与-“字符,问题是基于列上的第一个元素推断类型,因为第一个元素是数字,所以它认为一切都是数字@Haroon回答解决问题注:将列设置为文本格式并不能解决问题。Genius!!这让我抓狂,我在代码列的第一个元素中添加了一个引号,一切都正常。
89  |test1|test2
null|test3|test4 //here is my problem
90  |test5|test6
var excel = new LinqToExcel.ExcelQueryFactory(path);
excel.DatabaseEngine = DatabaseEngine.Ace; 

var excelValues = excel.Worksheet<Sheet>("Sheet1").AsEnumerable().Where(p =>
!String.IsNullOrWhiteSpace(p.Code));