c# 操作excel 本来要设置C2,D3的的值,结果值写到C1,D1去了?????

string str1 ="123";
string str2 ="456";
string str3 ="789";
string mypath= Environment.CurrentDirectory + @"\123.xlsx";
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ mypath + ";Extended Properties='Excel 12.0;HDR=no;'";
using (OleDbConnection OleConn = new OleDbConnection(strConn))
OleConn.Open();
try
{
using (OleDbCommand oleCommand = new OleDbCommand("update [Sheet1$B1:B1] set f1='" + str1 + "'", OleConn))
{
oleCommand.ExecuteNonQuery();
}

                using (OleDbCommand oleCommand = new OleDbCommand("update [Sheet1$C2:C2] set f1='" + str3 + "'", OleConn))
                {
                    oleCommand.ExecuteNonQuery();
                }

                using (OleDbCommand oleCommand = new OleDbCommand("update [Sheet1$D3:D3] set f1='" + str2 + "'", OleConn))
                {
                    oleCommand.ExecuteNonQuery();
                }      
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

图片说明

c#

2个回答

既然用C#了,为啥不用Open XML SDK? 搜搜 Open XML 读写EXCEL.
https://blog.csdn.net/qq283426694/article/details/45692327
用OLE很容易造成EXCEL占用卡死.

看下是不是你原来excel中只有1行,update是更新,要原来的表格有3行才能更新。
在执行你代码以前,先在c2 d3写入别的内容,保存,再执行看看。

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复lostfalling: 那你用 npoi 去写 excel 吧,ace驱动的方式,本身兼容性一般
9 个月之前 回复
Java81883
lostfalling 试了不行,应该不是这个原因。
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问