asp.net mvC语言 Excel导入:数据不被读取,如果列有不同的数据格式在mvc c#使用linq



我正在通过mvc网站使用linq语句导入excel表格,如下所示

var  members = (from memRec in excelFile.Worksheet(sheetName)
                where memRec["FIRST_NAME"] != null 
                select memRec).ToList();
foreach (var member in members)
{
//save data
}

这里的问题是,假设一个特定的列"出生日期"前两列的单元格格式是"DATE" and display as dd/MM/yyyy,第三列的单元格格式是"Text" and display as dd/MM/yyyy, excel将认为第三列没有值,因为格式不匹配。

有办法解决这个问题吗

尝试声明对象并使用预定义的数据类型,如:

var q = from memRec in excelFile.Worksheet(sheetName)
        where memRec["FIRST_NAME"] != null 
        select new Person()
        {
            Date = (DateTime)memRec [“Date”],
            FirstName= (string)memRec [“FirstName”],
            Age= (int)memRec [“Age”],
        };

我找到解决办法了。

我们的服务器是Office 2010。

更改注册表项如下

  1. 在Windows环境下,选择开始►运行并输入REGEDIT显示注册表编辑器
  2. 在注册表树中选择"HKEY_LOCAL_MACHINE►Software►Microsoft►"Office►12.0►Access Connectivity Engine►Engines.
  3. 双击Excel节点
  4. 在右面板中,双击TypeGuessRows条目。
  5. 将数值数据从8改为0
  6. 单击OK。
  7. 选择File►Exit退出注册表编辑器窗口。

现在excel不会猜测行数据类型,因为我们将值从8更改为0。

相关内容

  • 没有找到相关文章

最新更新