c#错误:"无法找到可安装的ISAM"将Excel文件转换为.CSV文件

use*_*359 5 c# csv excel exception isam

我正在开发一个能够将Excel文件转换为.CSV文件的项目,我认为我生成的C#代码存在一些问题并且错误消息找不到可安装的ISAM,请帮我解决一下我的问题.

码:

if (dlgOne.FileName.EndsWith(".xlsx"))
{
    StrConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 12.0;\"";
}

if (dlgTwo.FileName.EndsWith(".xls"))
{
    StrConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 1.0;HDR=Yes;IMEX=1\"";
}

OleDbConnection conn = null;

conn = new OleDbConnection(StrConn);
conn.Open();  <------------ throw exception
Run Code Online (Sandbox Code Playgroud)

在调试模式下,应用程序抛出一个异常(第一行conn.Open();)我搜索了互联网,我发现我必须把Data Source它放在一个cotes之间,但它在我的情况下不起作用.

bar*_*owc 16

两个连接字符串都是错误的.

对于.xlsx,它应该是:

StrConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";";
Run Code Online (Sandbox Code Playgroud)

(注意额外的Xml部分,HDR = YES表示您的文件有标题,IMEX = 1将所有数据视为文本和重新定位的分号.您需要.xlsm和.xlsb文件的不同连接字符串 - 请参阅在这里)

对于.xls,它应该是:

StrConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";
Run Code Online (Sandbox Code Playgroud)

(注意从Excel 1.0到Excel 8.0的更改以及最后添加的分号)