我可以指定某列的数据类型,而不是让LINQ到Excel的决定?(Can I specify the

2019-10-19 08:14发布

使用LINQ到Excel工作时,我注意到以下情况:

我试图从电子表格中导入的客房。

我有一个简单的类

   public class Room
    {
        public int BuildingID { get; set; }
        public string RoomNumber { get; set; }
        public double SQM { get; set; }
        public string Notes { get; set; }
    }

在电子表格中的房间号码或者是简单的数字,例如101,102,34等,或它们具有字符前缀例如AV1,LH2等

如果在我的表中的第一行以字母数字的房间号(如LH1)开始,一切都很好,和RoomNumber列被视为字符串数据。

在另一片,前几排是数字。 当我的循环到达第一字母数字的房间号,班里有一个空的,而不是如AV1,即使该行的其余部分是存在的。 这几乎就像LINQ到Excel已经看了前几排,并决定列数据类型必须是数字。

有没有一种方法,我可以强制从班里字符串数据类型?

Answer 1:

该问题已经与LinqToExcel使用OLEDB提供商做。

这里有一个堆栈溢出的问题,解释问题: Excel单元格值是通过OLEDB提供商截断

文章解释说,加入HDR = YES的问题有所帮助,并LinqToExcel已经设置该属性。

所以基本上你需要有前8个或16行的字母数字的房间号。 否则OLEDB把该列的数字,而不是字符串的所有值。



文章来源: Can I specify the data type for a column rather than letting linq-to-excel decide?