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