首页 > 编程 > C# > 正文

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

2019-10-29 19:58:02
字体:
来源:转载
供稿:网友

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.xlscn.Open();//创建TestSheet工作表cmd.ExecuteNonQuery();//添加数据cmd.CommandText = "INSERT INTO TestSheet VALUES(1,'elmer','password')";cmd.ExecuteNonQuery();//关闭连接cn.Close();

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


注:相关教程知识阅读请移步到c#教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表