Excel 2013的OLEDB连接字符串

4

我将尝试将我的旧连接字符串适应于一个excel 2013文件(.xlsx)的excel 2007文件。

这是我的旧字符串:

strConnectionString = string.Format(
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};" + 
    "Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", 
    strFile);

关于新的事项,我应该做些什么?

4
请添加此链接至您的书签 http://www.connectionstrings.com/excel-2013/。 - Steve
你试过当前的版本了吗?有出现任何错误吗?看起来完全有效。 - Steve
是的,我已经尝试了,但出现了错误。 - Pamplemousse
你的文件路径有空格吗?或许也要将数据源放在引号中?你收到了什么错误信息?这将为我们提供很多信息。 - Ctznkane525
2个回答

0

你试过这个吗...

string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0 Xml;HDR=Yes;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text'", arq)

2
尽管这篇文章很受欢迎,但其中的差异并不明显。通常应该在代码旁边给出(非常简短的)解释,比如,“此代码中包含' TypeGuessRows= 0; ImportMixedTypes=Text '在属性部分”。 - Veedrac

0

将数据视为文本

当您希望将文件中的所有数据视为文本时,请使用此选项,覆盖Excel的列类型“常规”,以猜测该列中的数据类型。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;
Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";

如果您想将列标题读入结果集(即使有标题也使用HDR=NO),并且列数据是数字,请使用IMEX=1以避免崩溃。

始终使用IMEX=1是检索混合数据列的数据的更安全的方法。考虑这样一种情况,一个Excel文件可能工作正常,因为该文件的数据导致驱动程序猜测一种数据类型,而另一个包含其他数据的文件则导致驱动程序猜测另一种数据类型。这可能会导致您的应用程序崩溃。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接