C# 对Excel进行写操作,但只能在每列的第一行进行更新填写,到底是哪里出错了?

try
{
this.conOleDB.Open();
command = new OleDbCommand(string.Format("UPDATE [{0}${1}:{2}] Set F1=\"{3}\"", new object[] { sheetName, cellName, cellName, value2Write }), this.conOleDB);
command.ExecuteNonQuery();
}
不管CellName为A2还是A5,所有的值全部写在了A1里面.....问题在哪呢?

2个回答

command = new OleDbCommand(string.Format("UPDATE [{0}${1}:{2}] Set F1=\"{3}\"", new object[] { sheetName, cellName, cellName, value2Write }), this.conOleDB);
F1只能更新第一行F列
你可以循环
for (int i = 1; i < 10; i++)
{
command = new OleDbCommand(string.Format("UPDATE [{0}${1}:{2}] Set F{4}=\"{3}\"", new object[] { sheetName, cellName, cellName, value2Write }), this.conOleDB, i);
command.ExecuteNonQuery();
}

Queenia
Queenia 我用你提供的方法试过了。。。。还是只写在第一行........还有什么方法吗?
大约 5 年之前 回复
Queenia
Queenia Tanks,我知道那里错了,谢谢你~~!!我改成UPDATE [{0}${1}:{2}] Set {3}=\"{4}\"", new object[] { sheetName, cellName, cellName, cellName, value2Write }), this.conOleDB); shixia
大约 5 年之前 回复

你这个是吧excel当成数据库来用。那么你现在数据库只有一行,update当然更新了第一行。你要insert啊

Queenia
Queenia 我这个函数是连接指定了*.xlsx文件后,再对设定的Cell单元进行写操作,原有的Excel表里面有很多的数据,这样的话,使用Update也是只有一行吗?
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问