除了直接访问单元格读取数据的方法之外,也可以使用OleDBAdapter来读取Excel工作表数据,注意,是工作表数据。使用这种方法,可以一次性获取全部工作表数据集。
使用Excel 2003的方法,注意连接字符串中的单引号:
- using System.Data;
- using System.Data.OleDb;
- ...
- OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetname + "$]",
- "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile +
- ";Extended Properties='Excel 8.0;HDR=NO;IMAX=1;';");
- System.Data.DataTable table = new System.Data.DataTable();
- adapter.Fill(table);
使用Excel 2007的方法:
- OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetname + "$]",
- "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFile + ";" +
- "Extended Properties=/"Excel 12.0;HDR=NO;IMEX=1;/"");
- DataSet ds = new DataSet();
- adapter.Fill(ds);
在连接字符串中的HDR意思是第一行作为数据显示,而非列名。 列名定义:
根据默认连接字符串中,数据提供程序会将有效区域内的第一行作为列名,如果此行某单元格为空则用F1、F2表示,其中序数,跟单元格的位置一致,从1开始
你一般不会希望看到这个列名滴!
关于使用OleDB方式更详细的说明,请参考下面的链接,比较详细:
http://bbs.51cto.com/archiver/tid-444055.html
OK,我的工作完成了,剩下的就看你的了。为了鼓励我写出更好的文章,请给个评论。也可以写信到igame2000@hotmail.com和我联系。我是igame。