我需要从 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();
我发现这应该允许访问合并的单元格:
OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\test.xls;Extended Properties=Excel 8.0;HDR=Yes;IMEX=1;");
但后来我在 cmd.conn.open(); 上得到一个找不到可安装的 ISAM 异常;
我在这里遵循了建议:http: //support.microsoft.com/kb/209805
在这里: 错误:“找不到可安装的 ISAM”
没运气。
我对从 xls 中提取数据的其他方式持开放态度。或者即使有一个命令我可以在 xls 上运行以删除可能工作的 mirged 单元格。