以前知道上传Excel是需要office对象的,这种方式就是太麻烦,不过灵活性很好。下面是一种变焦简单的方式将excel表中的数据直接导入到datatable中,取excel中的数据类似于写sql语句,这样就可以很方便的读取,下面是实现代码。
using (OleDbConnection con = new OleDbConnection(OleDbConstr + phis_path))
                {
                    con.Open();
                    DataTable dt = con.GetSchema("Tables");
                    string tablename = dt.Rows[0]["Table_name"].ToString();
                    
                    OleDbDataAdapter adp = new OleDbDataAdapter("select * from [" + tablename + "]", con);
                    DataSet ds = new DataSet();
                    adp.Fill(ds);
                    dtSet = ds.Tables[0];
                    return true;
                }
oledbconnection和sqlconnection是一样的,不过他可以连接一个excel而已,con.GetSchema("Tables");可以获得当前打开excel表格的架构,每一个sheet就相当于一个table,所以如果你当前excel表有3个sheet的话,dt会有三条记录,分别记录sheet的名称和创建时间等等,试一下就知道了。下面就是用OleDbDataAdapter 来去excel的数据了,可以只取满足条件的记录,和sql一样。然后就可以把datable插入到数据库了。有兴趣的动手下一下吧,很简单,也很方便啊,不过该方法不能用于word(好像是),如果要操作word那只能用office.dll了。