Asp.Net(C#)使用oleDbConnection 连接Excel的方法
Asp.Net(C#)使用oleDbConnection连接Excel
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:/MyExcel.xls;ExtendedProperties="Excel8.0;HDR=Yes;IMEX=1"
针对如果上连接字符串对相关属性进行说明如下:"HDR=Yes;”指示第一行中包含列名,而不是数据,"IMEX=1;”通知驱动程序始终将“互混”数据列作为文本读取。Excel8.0针对Excel2000及以上版本,Excel5.0针对Excel97。
usingSystem.Data.OleDb; usingSystem.Data; StringsConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"+ "DataSource=c:/test.xls;"+ "ExtendedProperties=Excel8.0;"; OleDbConnectionobjConn=newOleDbConnection(sConnectionString); objConn.Open(); OleDbCommandobjCmdSelect=newOleDbCommand("SELECT*FROM[sheet1]",objConn); OleDbDataAdapterobjAdapter1=newOleDbDataAdapter(); objAdapter1.SelectCommand=objCmdSelect; DataSetobjDataset1=newDataSet(); //将Excel中数据填充到数据集 objAdapter1.Fill(objDataset1,"XLData"); objConn.Close();
从上面可以看出,使用ADO.NET可将Excel当作普通数据库,使用SQL语句来操作。
通过ADO.NET获取Excel文件的各Sheet名称,可使用元数据方式:
StringsConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"+ "DataSource=c:/test.xls;"+ "ExtendedProperties=Excel8.0;"; OleDbConnectioncn=newOleDbConnection(sConnectionString); cn.Open(); DataTabletb=cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null); foreach(DataRowrowintb.Rows) { //遍历弹出各Sheet的名称 MessageBox.Show(row["TABLE_NAME"]); }
关于使用ADO.NET创建并写入Excel文件与普通数据库操作极为类似,参见以下代码:
StringsConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"+ "DataSource=c:/test.xls;"+ "ExtendedProperties=Excel8.0;"; OleDbConnectioncn=newOleDbConnection(sConnectionString); stringsqlCreate="CREATETABLETestSheet([ID]INTEGER,[Username]VarChar,[UserPwd]VarChar)"; OleDbCommandcmd=newOleDbCommand(sqlCreate,cn); //创建Excel文件:C:/test.xls cn.Open(); //创建TestSheet工作表 cmd.ExecuteNonQuery(); //添加数据 cmd.CommandText="INSERTINTOTestSheetVALUES(1,'elmer','password')"; cmd.ExecuteNonQuery(); //关闭连接 cn.Close();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。