您的位置:首页 > 编程语言 > C#

利用C#读取excel的一种方法

2012-10-22 23:01 507 查看
首先是源码:
using System;
using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data.SqlClient;

using System.Data.OleDb;

using System.Data.SqlTypes;

using System.Data.Common;

using System.Data.Sql;

using System.Data;

namespace test

{

class Program

{

static void Main(string[] args)

{

string constr = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =e:\\news.xls;Extended Properties=Excel 8.0";

string sqlcmd = "select * from [NewsData]";

OleDbCommand oc = new OleDbCommand(sqlcmd, new OleDbConnection(constr));

OleDbDataAdapter ap = new OleDbDataAdapter(oc);

DataSet ds = new DataSet();

ap.Fill(ds);

DataTable dt = ds.Tables[0];

int count = 0;

foreach (DataRow dr in dt.Rows)

{

//Console.Write(dc.ColumnName+" ");

//Console.WriteLine(dc.DataType);

DataColumn dc = dt.Columns[0];

{

Console.WriteLine(dr[dc]);

}

if (count !=0 )

break;

count++;

}

Console.ReadLine();

}

}

}

这个例子主要是根据OleDb的方法来讲Excel文件当做数据库来访问,具体步骤如下:

(1)首先设置连接字符串: string constr = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =e:\\news.xls;Extended Properties=Excel 8.0";

其中Data Source后面应该跟着自己的文件。

(2)然后OleDbCommend对象,这个对象就相对于命令,也就是创建你准备操作的命令。参数是命令字符串和数据库连接,对数据库操作肯定要连接到数据库上,因此命令的前一步是数据库连接,但是我们和在一个函数里写了。

(3)创建了这个命令,就会对数据库进行操作,操作的设置、进行、结果都在上面那个OleDbCommend对象中,当让我们需要从中找出来结果,这里我们利用DataAdapter,这个是个适配器,我们的操作得出的结果是一一个集,什么东东都用,适配器的作用就是对结果进行整合,给一个标准的数据集DataSet,也可以这样理解:适配器是个桥梁,A端是数据库,B端是我们要找的数据集,它起到一个适配作用,不管A端什么数据库,它都整理好提供给B端标准数据集。也有网友这么理解:而dataapater则与dataset配合,摆脱了操作数据过程中对数据库连接的依赖。一个最形象的比喻是,dataset是临时仓库,数据库是仓库,则适配器则是之间的一辆卡车,一次性从仓库中把货运到临时仓库,而不需要一件一件的来回跑。这就是其最大的好处。http://hi.baidu.com/roxxjzelbmcqxyr/item/a58f97cf8bf626d597445225

(4)对于找回来的DataSet,我们首先要获得表,关系数据库都是根据表存在,DataTable,然后通过这个DataTable可以获得Columns列的集合,以及Rows的集合。然后就可以通过行列操作获得具体的元素值。

(5)对于行列操作,详见源码

DataRow dr = dt.Rows[0];
DataColumn dc = dt.Columns[0];
Console.WriteLine(dr[dc]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: