读取具有日期格式列的Xls文件
本文关键字:Xls 文件 格式 日期 读取 | 更新日期: 2023-09-27 18:06:28
我有一个列Call_Date为DateTime格式的xls文件。
我试图读取这个文件,并把它在数据表与连接字符串属性HDR = No ie。我不想让数据表的头行读取它
我在datatable中获得的第一行是xls中除call_date外的列的名称,第一行为空字符串。
我可以理解OLEDB可能会尝试将其读取为日期时间格式,并将其作为type = "System的空字符串。DBNull" if不能解析为datetime.
但我需要有这个call_date列名在数据表的第一行像其他人。
我不能更改xls格式。我可以在c#或其他地方阅读时这样做吗?
我的代码到目前为止
mCon.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;data source=" + openFileDialog1.FileName + ";Extended Properties='"Excel 12.0;HDR=NO'";");
strSelectQuery = "SELECT TOP 20 * FROM [Sheet1$]";
if (mCon.State == ConnectionState.Closed)
{
mCon.Open();
}
DataAdapter = new System.Data.OleDb.OleDbDataAdapter(strSelectQuery, mCon);
DataAdapter.Fill(mDTable);
mCon.Close();
我花了几个小时在网上搜索这个话题,我自己解决了。
我刚刚修改了我的连接字符串,允许OLEDB通过在扩展属性中添加IMEX =1来读取具有多个数据类型条目的excel文件。
我的连接字符串现在看起来像
mCon.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;data source=" + openFileDialog1.FileName + ";Extended Properties='"Excel 12.0;HDR=NO;IMEX = 1'";");