我正在使用ASP上的OleDb读取excel文件。NET (C#)。所有信息都返回了ok,我惊讶地发现,即使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“,因为最终用户不必担心更改它,所以我如何克服这个问题?
致以问候!
发布于 2011-01-18 19:06:50
你考虑过你的连接字符串吗?
"IMEX=1;“告诉驱动程序始终将”混合“(数字、日期、字符串等)数据列作为文本读取。请注意,此选项可能会影响excel工作表写入访问负数。
-- http://www.connectionstrings.com/excel
https://stackoverflow.com/questions/4726789
复制相似问题