1
我在包含字符串和数字的Excel文件中有一列。通过反复试验发现,ADO.NET根据前8行单元格的类型推断列的类型。当发生这种情况时,列下的所有字符串都不会被添加到DataTable中。ADO.NET如何强制将Excel列的类型推断为String而不是Double?
我的目标是让ADO.NET以字符串的形式读取该列下的值。
如何做到这一点?
我在包含字符串和数字的Excel文件中有一列。通过反复试验发现,ADO.NET根据前8行单元格的类型推断列的类型。当发生这种情况时,列下的所有字符串都不会被添加到DataTable中。ADO.NET如何强制将Excel列的类型推断为String而不是Double?
我的目标是让ADO.NET以字符串的形式读取该列下的值。
如何做到这一点?
附加IMEX = 1至类似于连接字符串:
string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + savePath +
"; Extended Properties=" + (char)34 + "Excel 8.0;IMEX=1;"
+ (char)34;
的IMEX参数(1是输入模式)迫使列的数据类型为文本,使得字母数字值被正确地处理。
我发现它只采样前8行。 http://support.microsoft.com/kb/281517 – Paparazzi
这一切都取决于注册表设置和IMEX。你需要检查TypeGuessRows。 0(零)表示所有行。 – Fionnuala
查看@ onedaywhen的回答http://www.dotnet247.com/247reference/msgs/37/187667.aspx – Fionnuala