欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Asp.Net(C#)使用oleDbConnection 连接Excel的方法

程序员文章站 2023-12-04 16:38:24
asp.net(c#)使用oledbconnection 连接excel "provider=microsoft.jet.oledb.4.0;data source=...

asp.net(c#)使用oledbconnection 连接excel

"provider=microsoft.jet.oledb.4.0;data source=d:/myexcel.xls;extended properties= "excel 8.0;hdr=yes;imex=1"

针对如果上连接字符串 对相关属性进行说明如下:"hdr=yes;”指示第一行中包含列名,而不是数据,"imex=1;”通知驱动程序始终将“互混”数据列作为文本读取。excel 8.0 针对excel2000及以上版本,excel5.0 针对excel97。

using system.data.oledb;
using system.data;

string sconnectionstring = "provider=microsoft.jet.oledb.4.0;" +
"data source=c:/test.xls;" +
"extended properties=excel 8.0;";
oledbconnection objconn = new oledbconnection(sconnectionstring);
objconn.open();
oledbcommand objcmdselect =new oledbcommand("select * from [sheet1]", objconn);
oledbdataadapter objadapter1 = new oledbdataadapter();
objadapter1.selectcommand = objcmdselect;
dataset objdataset1 = new dataset();
//将excel中数据填充到数据集
objadapter1.fill(objdataset1, "xldata");
objconn.close();

从上面可以看出,使用ado.net可将excel当作普通数据库,使用sql语句来操作。

通过ado.net获取excel文件的各sheet名称,可使用元数据方式:

string sconnectionstring = "provider=microsoft.jet.oledb.4.0;" +
"data source=c:/test.xls;" +
"extended properties=excel 8.0;";
oledbconnection cn = new oledbconnection(sconnectionstring);
cn.open();
datatable tb = cn.getoledbschematable(oledbschemaguid.tables, null);
foreach (datarow row in tb.rows)
{
//遍历弹出各sheet的名称
messagebox.show(row["table_name"]);
}

关于使用ado.net创建并写入excel文件与普通数据库操作极为类似,参见以下代码:

string sconnectionstring = "provider=microsoft.jet.oledb.4.0;" +
"data source=c:/test.xls;" +
"extended properties=excel 8.0;";
oledbconnection cn = new oledbconnection(sconnectionstring);
string sqlcreate = "create table testsheet ([id] integer,[username] varchar,[userpwd] varchar)";
oledbcommand cmd = new oledbcommand(sqlcreate, cn);
//创建excel文件:c:/test.xls
cn.open();
//创建testsheet工作表
cmd.executenonquery();
//添加数据
cmd.commandtext = "insert into testsheet values(1,'elmer','password')";
cmd.executenonquery();
//关闭连接
cn.close();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。