我正在使用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;