C# winform 开发之Excel操作(三)------Excel表格处理(增删改)和保存

在上一篇中关于Excel表格的打开,已经详细的讲解了Excel命名空间的引用,这里我就不重复了!

网址链接:

http://blog.csdn.net/kkfdsa132/archive/2010/03/14/5379529.aspx

下面,我们进入主题。

 

Excel表格的修改方式有很多。这里我介绍下,我知道的两种方法。

1.通过sql语句,修改。这也是我比较喜欢的方法。因为比较方便,和效率高。对于有数据库基础的,上手也快。

2.通过Excel提供的对象类,进行访问。这种方式,效率比较低,反应慢。因为这个操作过程,是要打开Excel文件的,Excel的开启占去了许多时间。

 

 

方法一:通过sql语句进行修改,方法类似于数据库操作。

下面给出源代码!代码中注释。

 /// <summary>
        /// 通过sql语句,修改并保存Excel
        /// </summary>
        /// <param name="strsql"></param>
        /// <param name="filepath"></param>
        private void DoSql(string strsql, string filepath)//这里的strsql指要执行的sql语句,filepath指Excel的路径,例如"E://1.xls"
        {
                 try
                {
                    string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=no;IMEX=0'";//连接Excel OLEDB协议
                    OleDbConnection oledCon = new OleDbConnection(ConnectionString);//创建连接对象
                    oledCon.Open();//开启连接
                    OleDbCommand oledCom = new OleDbCommand(strsql, oledCon);//
                    oledCom.ExecuteNonQuery();//执行sql语句
                    oledCon.Close();//关闭连接
                }
                catch (Exception err)
                {
                    MessageBox.Show("Excel操作失败!失败原因:" + err.Message, "提示信息",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
           

        }

 

下面再给给出一段代码,展示下如何调用上面语句。

首先,拉一个Button控件,和两个textbox

  private void button1_Click(object sender, EventArgs e)
        {

            string num = int.Parse(textBox1.text);

            string xuehao = textBox2.text;

            string strsql = "Update [Sheet1$] set 旷课次数='"+num.ToString()+"' where 学号='"+xuehao+"'";

//修改数据,其中旷课次数,姓名是列名
            DoSql(strsql, "E://1.xls");
        }

 

上面举得例子是更新语句,同理,也可以通过insert语句进行插入,delete语句进行删除。这里简单举例下:

string strsql = "insert into [Sheet1$](旷课次数,姓名) values(12,'张三')";//写入新的数据

string strSql = "delete * from [Sheet1$] where 学号='张三'"; //删除一行

 

我也是一个初学者,很高兴和大家分享经验。

在下一篇文章,将继续介绍Excel的基本操作-----Excel表格处理方法二。

希望,能对大家有用。

 

你可能感兴趣的:(sql,String,Excel,C#,WinForm,textbox)