Update cell query for Excel ADO from Delphi
我有以下代码来打开我的 Excel 工作表,使用 TADOConnection 和 TADOQuery:
1 2 | conExcel.ConnectionString := 'Provider=Microsoft.JET.OLEDB.4.0;Data Source="D:\\temp\\file.xls";Extended Properties="Excel 8.0;HDR=No"'; conExcel.Connected := true; |
当我运行以下代码时:
1 2 3 4 5 6 7 | queryExcel1.SQL.Text := 'SELECT * FROM [Hoja1$]'; queryExcel1.Open; while not queryExcel1.eof do begin showmessage(queryExcel1.Fields.Fields[0].AsString); queryExcel1.Next; end; |
我得到了文件的每一行,所以它工作正常,但我想更新一个单元格。
我正在使用此代码:
1 2 | queryExcel2.SQL.Text := 'UPDATE [Hoja1$] SET F1 = 555555'; queryExcel2.ExecSQL; |
它以某种方式将工作表上的每个"A"单元格更新为 555555,但我真正想要的只是将 A1 单元格设置为 555555。有关如何包含查询的 WHERE 部分的任何提示。谢谢。
如果您想使用 Adoquery,您必须将 ParamCheck 设置为 false,因为您必须将
另一种选择是直接使用连接。
在下面的示例中,范围 B2:B2 与 F1 一起使用,这是第一列的 Jet 的默认名称。 (B2 是我们要更新的单元格)
1 2 3 4 | Q.SQL.Text := 'UPDATE [Hoja1$B2:B2] SET [F1] = 555555'; Q.ExecSQL; // or: //AdoConnection1.Execute('UPDATE [Hoja1$B2:B2] SET [F1] = 555555'); |