C# OleDbDataAdapter读取Excel文件时的日期格式

问题描述

我有带 IMEX 选项的连接字符串(所有类型都转换为字符串):

strConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\"{0}\";Extended Properties=\"Excel 12.0 Xml;HDR=NO;IMEX=1;\";",strFile);

我使用以下代码将 xslx 文件读入 DataTable

DataTable table = new DataTable(name);
string sql = "SELECT * FROM [" + name + "]";
OleDbDataAdapter sqlAdapter = new OleDbDataAdapter();
OleDbCommand selectCMD = new OleDbCommand(sql,sqlConn);
sqlAdapter.SelectCommand = selectCMD;
sqlAdapter.Fill(table);

程序在两台计算机上读取同一个文件

当程序在第一台计算机上运行时,我得到类似字符串“31.03.2021”的日期。当程序在第二台计算机上运行时,我得到类似字符串“3/31/2021”的日期。

我无法在两台计算机上获取相同的日期格式。我已经尝试过:

  1. 在 Windows 设置中更改语言格式。

  2. 设置

     Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    
  3. 设置

     table.Locale = new CultureInfo("en-US");
    

没有任何帮助

解决方法

我找不到任何解决方案。所以我开始使用选项 IMEX=0 而不是 IMEX=1。 日期被正确读取为 DateTime 类型。