我正在使用 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;
答案 0 :(得分:6)
你不能,你必须知道页面的名称。使用TADOConnection
连接到工作簿,以便您可以调用GetTableNames
来检索页面名称。有一个例子here。然后,您可以将ADO数据集的Connection
属性或ADO查询设置为连接对象并运行查询。
答案 1 :(得分:1)
虽然我确信有人会回答你的问题,但我想建议,如果合情合理的话,你会考虑另一种方法。看看NativeExcel。根据您的需要,您可以按工作表名称或索引访问电子表格。第一张工作表是Book.Sheets [1]。开发人员维护了一个非常好的支持文档,作为帮助文件或在线here提供。我已经使用了这个库几年,发现它非常稳定和强大。