使用 oledb 更新 Excel 文件的特定单元格

问题描述 投票:0回答:3

我想使用 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();
c# excel oledbcommand
3个回答
1
投票

这可能纯粹是您使用的单元格地址方案的问题。请尝试

$I$7:$I$7
。另外,查询中的
F1
是什么?


0
投票

我在Excel 2007上运行了相同的程序,运行顺利。对于 Excel 2013,它不起作用。看起来像是 excel 2013 中的一个错误。


0
投票

我读了这篇博客 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列的数据类型匹配。 ”

© www.soinside.com 2019 - 2024. All rights reserved.