string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\\a.xlsx" + ";Extended Properties='Excel 12.0 Xml;HDR=No'";
OleDbConnection conn = new OleDbConnection(connString);
OleDbCommand cmd = new OleDbCommand("Update [tablenameeee$] SET A1='15'", conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
我想访问excel中的特定单元格,并更改其值。但我得到了例外
OleDbException。没有给出一个或多个必需参数的值。解决方案是什么?
答案 0 :(得分:3)
如果您使用HDR = NO,列名称为F1,F2 F3等......
OleDbCommand cmd = new OleDbCommand("Update [tablenameeee$] SET F1='15'", conn);
但我认为你应该指定一个WHERE子句来划分受影响的行 记住,使用OleDb你不应该考虑行/列,而是记录。
作为替代方案,如果您确切知道要更新的行/列,则可以使用
OleDbCommand cmd = new OleDbCommand("Update [tablenameeee$A1:A1] SET F1='15'", conn);
答案 1 :(得分:0)
也许你需要一个where子句
Update [tablenameeee$] set [F1] = 15 where [F2] = 3
或者如果您想访问一个特定的单元格,并且您知道它是哪个单元格,那么Steve的解决方案就像手套一样适合您。