Java81883
lostfalling
采纳率67.6%
2019-10-26 16:41

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

5
已采纳

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);
            }
        }

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • infoworld infoworld 2年前

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

    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 2年前

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

    点赞 评论 复制链接分享