查看代码
 1 Protected void btnImport_Click(object sender,EventArgs e)
2 {
3 string strConn="Provider=Microsoft.Jet.OLEDB.4.0"+"Data Source="+this.FileUp.PostedFile.FileName+";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";
4 OledbConnection conn=new OledbConnection(strConn);
5 conn.Open();
6 DataTable dt=conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null);//获取excel里面的所有工作簿,dt里面的第三列就是 所有工作簿的名称
7 DataSet ExcelDs=new DataSet();
8 try
9 {
10 for(int i=0;i<dt.Rows.Count;i++)
11 {
12 string tableName=dt.Rows[i][2].ToString().Trim();
13 string strSql="select * from ["+tableName+"]";
14 OleDbDataAdapter ExcelDA=new OleDbDataAdapter(strSql,conn);
15 ExcelDA.Fill(ExcelDs,tableName);
16 }
17 SetDataToDB(ExcelDs);
18 }
19 catch(Exception err)
20 {
21 throw err;
22 }
23
24 }
25
26 private void SetDataToDB(DataSet ds)
27 {
28 if(ds !=null)
29 {
30 for(int i=0;i<ds.Tables.Count;i++)
31 {
32 for(int j=0;j<ds.Tables[i].Rows.Count;j++)
33 {
34 DataRow dr=ds.Tables[i].Rows[j];
35 //这样两个for循环就得到了Excel里面的每个工作簿,接下来不管是把数据显示在gridview上还是存到数据库都很好操作了吧、
36 }
37 }
38 }
39 }

上面的代码是基于Web程序来操作Excel的,界面上有个上传的控件 FileUpload  id 为FileUp,还有一个导入按钮 id为 btnImport,但不管是Web程序还是WinForm程序 原理都是一样的。(以上这段代码是我一个一个敲出来的,没有copy,要是有哪个关键字写错了,还请指出......嘻嘻)