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();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。