读取具有日期格式列的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();

读取具有日期格式列的Xls文件

我花了几个小时在网上搜索这个话题,我自己解决了。

我刚刚修改了我的连接字符串,允许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'";");