4
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 中的特定单元格,并更改其值。但我有例外

OleDb 异常。没有为一个或多个必需参数指定值。解决方案是什么?

4

2 回答 2

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); 
于 2012-09-05T15:21:10.600 回答
0

也许你需要一个 where 子句

Update [tablenameeee$] set [F1] = 15 where [F2] = 3

或者,如果您想访问一个特定的单元格,并且您知道它是哪个单元格,那么史蒂夫的解决方案将像手套一样适合您。

于 2012-10-29T16:00:06.333 回答