Gra*_*eme 8 .net oledb import excel jet
我需要将Excel电子表格导入我的程序并具有以下代码:
string connectionString = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;IMEX=1;HDR=NO;""", MyExcelFile.xls);
command.CommandText = "SELECT * FROM [Sheet1$]";
Run Code Online (Sandbox Code Playgroud)
(注意,上面的代码不是真正的代码,但应该让你看看我在做什么)
我正在导入文件,唯一的问题是Excel工作表中超过255个字符的任何列都被截断.
有没有办法解决这个问题?
我在某处读到,如果你确保前8行中的列中有一长串文本,那么它将被视为备注字段,因此不会被截断,但这似乎不起作用.
有任何想法吗?
格雷姆
几次撞到这一个.幸运的是有一个注册表黑客需要修复,在MSDN上有描述:http://support.microsoft.com/kb/189897
实际上,Excel仅查看前八行数据以确定列的长度.如果长度为255个字符或更少,则255是默认值.我上面引用的MSDN文章解释了如何添加一个注册表项" TypeGuessRows",它告诉Excel要扫描多少行来确定列长度.
也许您的问题有一个更简单的解决方案,但作为最后的手段,请尝试将 Excel 文件另存为 CSV 文本文件,然后使用常规文件和字符串操作类而不是 JET 引擎对其进行处理。