使用ADODataset组件打开Excel电子表格

我正在使用ADOdataset组件查看Delphi表单上的Excel电子表格。

该组件要求将CommandText属性设置为打开的工作簿中电子表格的名称。

如何设置此属性以打开工作簿中的第一个电子表格而不考虑名称?


procedure TForm1.BitBtn1Click(Sender: TObject); var XLSFile, CStr : string; begin if OpenDialog1.Execute() then begin XLSFile := OpenDialog1.FileName; CStr := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +XLSFile+'; Extended Properties=Excel 8.0;Persist Security Info=False'; ADODataSet1.Active := False; ADODataSet1.ConnectionString := Cstr; ADODataSet1.CommandText := ??????????; ADODataSet1.Active := True; end; end; 

你不能,你必须知道页面的名字。 使用TADOConnection连接到工作簿,以便您可以调用GetTableNames来检索页面的名称。 这里有一个例子。 然后,您可以将ADO数据集的Connection属性或ADO查询设置为连接对象并运行查询。

虽然我确信有人会提出你的问题的答案,但我想build议,如果它是在适当的,你考虑一种替代方法。 看看NativeExcel 。 为了您的迫切需要,您可以通过工作表名称或索引访问电子表格。 第一张纸被发现Book.Sheets [ 1 ]。 开发者维护一个非常好的支持文档作为帮助文件或在线在线。 我已经使用了几年的图书馆,发现它非常稳定和强大。

添加属性:

 ADODataSet1.CommandType := cmdUnknown;