从Delphi更新Excel ADO的单元格查询

我有以下代码来打开我的Excel工作表,使用TADOConnection和TADOQuery:

conExcel.ConnectionString := 'Provider=Microsoft.JET.OLEDB.4.0;Data Source="D:\temp\file.xls";Extended Properties="Excel 8.0;HDR=No"'; conExcel.Connected := true; 

当我运行下面的代码:

 queryExcel1.SQL.Text := 'SELECT * FROM [Hoja1$]'; queryExcel1.Open; while not queryExcel1.eof do begin showmessage(queryExcel1.Fields.Fields[0].AsString); queryExcel1.Next; end; 

我得到文件的每一行,所以它工作正常,但我想更新一个单元格。 我正在使用这个代码:

 queryExcel2.SQL.Text := 'UPDATE [Hoja1$] SET F1 = 555555'; queryExcel2.ExecSQL; 

哪种方式更新工作表上的每个“A”单元格为555555,但我真正想要的是将A1单元格设置为555555.有关如何包含查询的WHERE部分的任何提示。 谢谢。

如果要使用Adoquery,则必须将ParamCheck设置为false,因为您将不得不使用:要更新的范围。
另一种select是直接使用连接。
在下面的示例中,范围B2:B2与F1一起使用,F1是第一列的Jet的默认名称。 (B2是我们想要更新的单元格)

  Q.SQL.Text := 'UPDATE [Hoja1$B2:B2] SET [F1] = 555555'; Q.ExecSQL; // or: //AdoConnection1.Execute('UPDATE [Hoja1$B2:B2] SET [F1] = 555555');