2013-04-09 52 views
0

我想使用oledb更新excel文件的特定单元格。说I7单元格,出于某种原因总是I1正在更新。任何人都可以告诉我这段代码有什么问题吗?使用oledb更新excel文件的特定单元格

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(); 
+0

你的excel是否有过滤器? – 2013-04-09 06:22:38

+0

感谢您的回复,没有设置过滤器。 – 2013-04-09 06:24:53

回答

1

我在Excel 2007上运行的程序相当流畅。对于Excel 2013,它不起作用。看起来像在Excel 2013中的bug。

1

这可能纯粹是您使用的单元地址方案的问题。尝试$I$7:$I$7 intsead。另外,查询中的东西是什么F1

+0

立即获取此错误 - Microsoft Office Access数据库引擎找不到对象'Sheet1 $ I $ 7:$ I $ 7'。确保对象存在,并且正确拼写其名称和路径名。 F1是选定范围内的单元格编号 – 2013-04-09 06:33:27

+0

表名称后缺少感叹号(!)。 – dotNET 2013-04-09 06:36:18

+0

那么你是在更新I7还是F1? – dotNET 2013-04-09 06:36:46

相关问题