出于调试目的,我想知道快速测试OLE DB连接字符串的方法.
我找到了这个免费软件,它可以在我的机器上运行,测试成功.
有没有更快的方法,可能从Windows上的命令行?因为大部分时间,客户而不是我都会执行此任务,所以我更喜欢"零安装"方法,这种方法会影响他们的系统.
我需要从XLS提取数据,我也需要让用户能够更改文件它将位置.因此,OleDbConnection似乎是一个良好的开端,直到第一个合并的单元格.
这适用于除合并单元格以外的所有单元格:
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=F:\test.xls;Extended Properties=Excel 8.0;");
cmd.CommandText = "SELECT * FROM [Sheet$]";
cmd.Connection.Open();
Run Code Online (Sandbox Code Playgroud)
我发现这应该允许访问合并的单元格:
OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\test.xls;Extended Properties=Excel 8.0;HDR=Yes;IMEX=1;");
Run Code Online (Sandbox Code Playgroud)
但后来我得到一个无法找到cmd.conn.open安装ISAM异常();
我按照这里的建议:http: //support.microsoft.com/kb/209805
在这里: 错误:"无法找到可安装的ISAM"
没运气.
我对其他从xls中提取数据的方式持开放态度.或者即使有命令我可以在xls上运行以删除可能有效的mirged单元格.
我有以下代码:
string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\db\suc.xls; Extended Properties=""Excel 12.0;HDR=YES;""";
// Create Connection to Excel Workbook
using (OleDbConnection connection =
new OleDbConnection(excelConnectionString))
{
OleDbCommand command = new OleDbCommand
("Select * FROM [Sheet1$]", connection);
connection.Open();
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
找不到可安装的ISAM.
在connection.Open()
.有任何想法吗 ?