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

来源:互联网 发布:http 499 nginx 编辑:程序博客网 时间:2024/06/05 18:01

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表格

方法与前面Excel表格读取的方法(http://blog.csdn.net/kkfdsa132/archive/2010/03/14/5379815.aspx)相同,只是替换下红色字体。

替换如下:

//修改或添加数据

 wSheet.Cells[ x, y] = "修改或添加数据";

//删除数据

wSheet.Cells[ x, y] = "";

//x, y 从1开始

原文转载地址:http://blog.csdn.net/kkfdsa132/article/details/5382730


原创粉丝点击