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的截图:
希望这些代码能帮助到你。