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的更改以及最后添加的分号)