用于excel 2013的OLEDB连接字符串

时间:2013-09-11 19:01:52

标签: c# connection-string oledb

我正在尝试将旧的连接字符串调整为Excel Excel文件的excel 2007文件(.xlsx)

这是我原来的那个:

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

对于新的我该怎么办?

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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文件可能会正常工作,原因是该文件的数据导致驱动程序猜测一种数据类型,而另一个包含其他数据的文件导致驱动程序猜测另一种数据类型。这可能会导致您的应用崩溃。