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#了,为啥不用Open XML SDK? 搜搜 Open XML 读写EXCEL.
https://blog.csdn.net/qq283426694/article/details/45692327
用OLE很容易造成EXCEL占用卡死.

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