Chinaunix首页 | 论坛 | 博客
  • 博客访问: 371777
  • 博文数量: 94
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 823
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-04 16:49
文章分类

全部博文(94)

文章存档

2015年(1)

2011年(1)

2010年(3)

2008年(8)

2007年(55)

2006年(26)

我的朋友

分类: 数据库开发技术

2007-08-06 10:35:50

操作Excel和数据库的方法类似。
 
//建立与Excel的连接并打开(Excel 8.0且不包含标题行)
OleDbConnection xlsConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + xlsFilePath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"");
//这里的连接字符串通常保存在Setting.settings文件中,使用时用global:EucGlo(解决方案名称)(这两部分可省略).Properties.Settings.Default.EucGloConnectionString(文件中定义的名字)获得。
//注意字符串中包含有引号,像在这里自己定义和使用时需要转义
//对于Excel 8.0,网上查到的语句也有很多是5.0,可能是操作早期Excel版本的语句吧。
//语句 HDR=Yes;IMEX=1 可不加,但还是加的好,因为不知道默认值是多少。其中HDR表示是否包含Excel标题行(第一行)。IMEX=1在网上查到说是表示将Excel中所有数据视为文本,但我觉得明显不是。我这样子连接后,后面可以用xlsReader.GetDouble()方法获取Excel中的数字(包括整型和浮点型),得到数字后在强制转化为需要的数字类型即可。
 
xlsConn.Open();

//建立对Excel的SQL操作,注意使用的表的方法
string sqlXls = "select * from [Sheet1$]";
OleDbCommand xlsComm = new OleDbCommand(sqlXls, xlsConn);//这一句并不执行SQL语句
//OleDbCommand的一些方法单独介绍
 
//执行SQL语句并从Excel中获得数据放入xlsReader
OleDbDataReader xlsReader = xlsComm.ExecuteReader(CommandBehavior.Default);
//关于DataReader的一些方法单独介绍
 
//循环读取Excel文件中的记录直到最后一行
while (xlsReader.Read())
{
    xlsReader.GetString(O);
    //获取这一行中第一列的字符串,如果为空则会产生异常,因此需要try,catch
    //其他处理语句;
}
xlsReader.Close();
xlsReader.Dispose();
xlsComm.Dispose();
xlsConn.Close();
xlsConn.Dispose();
阅读(1644) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~