我想使用 oledb 更新 Excel 文件的特定单元格。比如说 I7 单元,由于某种原因,I1 总是在更新。谁能告诉我这段代码有什么问题吗?
OleDbConnection oledbConn = new OleDbConnection(connString);
oledbConn.Open();
// I want to set the value of I7 cell to 22, for some reason value is I1 is getting updated :(
OleDbCommand cmd = new OleDbCommand("UPDATE [" + sheetName + "$I7:I7] SET F1=22", oledbConn);
int result = cmd.ExecuteNonQuery();
Console.WriteLine(result);
oledbConn.Close();
这可能纯粹是您使用的单元格地址方案的问题。请尝试
$I$7:$I$7
。另外,查询中的 F1
是什么?
我在Excel 2007上运行了相同的程序,运行顺利。对于 Excel 2013,它不起作用。看起来像是 excel 2013 中的一个错误。
我读了这篇博客 Atul Sureka 是如何说的 forums.asp.net/t/1214491.aspx/1 ” 此链接可能对您有帮助:
http://www.pcreview.co.uk/forums/thread-1176677.php
要更新您使用的现有表格中的单个单元格 连接字符串的扩展属性中的 HDR=No 并使用 UPDATE sql 语法如:
更新 [Sheet3$A2:A2] SET F1='TestValue1';
F1 是 Jet 分配给第一列的默认名称 其中列名称未知或无效。插入的值必须 与whole列的数据类型匹配。 ”