使用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数据集或ADO查询的Connection属性设置为连接对象,并执行查询。

虽然我相信有人会回答你的问题,但我还是建议,如果合适的话,你可以考虑另一种方法。看看NativeExcel。对于您的直接需要,您可以通过表格名称或索引访问电子表格。第一张页被发现为Book.Sheets[1]。开发人员在这里维护了一个非常好的支持文档,作为帮助文件或在线交付。我已经使用这个库几年了,发现它非常稳定和强大。

添加属性:

ADODataSet1.CommandType := cmdUnknown;

最新更新