C# Excel 03的数据操作

最近用WinForm做了一个Excel导入导出功能的程序。在网上找了很久都没有找到一个简单方便的代码。后来在同事那儿拿到一份读取Excel数据的代码。看到那个代码,让我大吃一惊,这不是对Access数据库的读取方式吗?就是数据库连接的字符串改变了一下。连接字符串:string strCon = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + fileName + ";Extended Properties=Excel 8.0";

当然在连接Access数据库时,我们要引入 System.Data.OleDb 这个命名空间。

主要代码:    

OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = "Excel文件";
            ofd.FileName = "";
            ofd.Filter = "Excel文件(*.xls)| *.xls";
            string fileName = "";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                fileName = ofd.FileName;
                //之后想干吗就干吗 
            }


            if (!string.IsNullOrEmpty(fileName))
            {


                string strCon = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + fileName + ";Extended Properties=Excel 8.0";
                OleDbConnection strConn = new OleDbConnection(strCon);
                string strSql = "select * from [sheet1$]";
                strConn.Open();
                OleDbDataAdapter strCom = new OleDbDataAdapter(strSql, strConn);


                DataSet ds = new DataSet();
                strCom.Fill(ds, "[sheet1$]");
                strConn.Close();

这里我是通过打开对话框的方式来选择Excel文件的,而Excel里的数据时放在[sheet1$]中的。

下面我们来看看怎么更新Excel里的数据吧,代码:

                strConn.Open();
                for (int i = 0; i < lab.Count; i++)
                {
                    string strInsert = "update [sheet1$] set [备注]='" + field[i] + "' where [URL]='" + lab.ElementAt(i).Key + "'";
                    OleDbCommand cmd = new OleDbCommand(strInsert, strConn);
                    int int_insert = cmd.ExecuteNonQuery();
                }
                strConn.Close();

这里有两个数据字段是要知道的[备注],[URL]。当然如果你要修改成其他的也可以,但是要和Excel里的字段名相一致。不然就麻烦了,呵呵~~~~~。

下面是我的Excel的截图:

希望这些代码能帮助到你。

posted @ 2011-09-06 16:29  小虾Joe  阅读(439)  评论(0编辑  收藏  举报