我有以下代码来打开我的Excel工作表,使用TADOConnection和TADOQuery:
conExcel.ConnectionString := 'Provider=Microsoft.JET.OLEDB.4.0;Data Source="D:tempfile.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,因为要更新的范围必须使用:
另一种选择是直接使用连接
在下面的示例中,范围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');