我正在我的应用程序中读取一个 excel 文件。我使用 OleDbDataAdapter 来读取和 DataTable 来存储来自 .xlsx 文件的记录。我在从单列中读取不同的日期格式时遇到问题。我的专栏是这样的:
2014-02-07
2014-02-05
27.01.2014
19.11.2013
2014-02-07
2014-02-07
我的程序仅加载“yyyy-MM-dd”格式的日期,其余日期为 DBNull.Value。有没有办法将整列读取为字符串(以便我可以手动操作它们)或强制 OleDbDataAdapter 读取所有日期?
那是我的代码:
var fileName = string.Format(@"C:\28.xlsx");
var connectionstring = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties='Excel 12.0 xml;HDR=NO;IMEX=1'");
var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$B12:L]", connectionstring);
var ds = new DataSet();
adapter.Fill(ds, "anyNameHere");
System.Data.DataTable data = ds.Tables["anyNameHere"];
foreach (DataRow row in data.Rows)
{
try
{
Console.WriteLine(row.Field<DateTime>(3).ToShortDateString());
}
catch
{
Console.WriteLine(row.Field<string>(3));
}
}