我在ASP上使用OleDb读取excel文件。 NET(C#)。 所有信息都返回正常,我很惊讶地发现即使Excel文件中定义的单元格类型也会返回到我的代码中。 问题是我的列中所有单元格都是“常规”类型,并且由于值只是数字,因此Excel将其视为数字。 如果没有空格,olebd驱动程序会向我的代码返回正确的值,但如果有空格则返回“”...
以下是我获取信息的方式:
OleDbConnection oleDbConn = new OleDbConnection(connString);
oleDbConn.Open();
OleDbCommand oleDbComm = new OleDbCommand("SELECT * FROM [Sheet1$]", oleDbConn);
OleDbDataAdapter oleDbDtAdapter = new OleDbDataAdapter();
oleDbDtAdapter.SelectCommand = oleDbComm;
DataSet dtSet = new DataSet();
oleDbDtAdapter.Fill(dtSet, "SMSs");
Object testZeroZero = dtSet.Tables[0].Rows[0][0];
我无法转到Excel并将单元格类型更改为“text”,因为最终用户不必担心更改此问题,以便我如何克服这个问题?
问候!
答案 0 :(得分:3)
您是否考虑过您的连接字符串?
“IMEX = 1;”总是告诉司机 读“混合”(数字,日期, 字符串等)数据列为文本。 请注意,此选项可能会影响 excel表写访问否定。