为什么LinqToExcel在遇到&#34时返回null? - "字符?

时间:2015-01-15 19:02:58

标签: 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<Sheet>("Sheet1").AsEnumerable().Where(p => !String.IsNullOrWhiteSpace(p.Code));

返回以下信息:

89  |test1|test2
null|test3|test4 //here is my problem
90  |test5|test6

如果我将89-2改为89.2则可行。有什么方法可以逃脱&#34; - &#34;字符?或者我做错了什么。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

var excel = new LinqToExcel.ExcelQueryFactory(path);
excel.DatabaseEngine = DatabaseEngine.Ace; 

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