Excel操作
命名空间(using System.Data.OleDb)
一、连接字符串(类似数据库连接字符串)
①Excel_2007(Microsoft.ACE.OLEDB.12.0)
string Path = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:/test.xlsx;Extended Properties=Excel 8.0;";
②Excel_2003(Microsoft.Jet.Oledb.4.0)
string Path = @"Provider= Microsoft.Jet.Oledb.4.0;Data Source=D:/test.xlsx;Extended Properties=Excel 8.0;";
二、使用ADO.NET打开、读取并关闭代码示例如下:
OleDbConnection oconn = new OleDbConnection(Path);
oconn.Open();
OleDbCommand ocomm = new OleDbCommand("select * from [Sheet1$]",oconn); OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = ocomm;
DataSet ds = new DataSet();
da.Fill(ds, "XLDATA");
DataTable dt=ds.Tables[0];
foreach (DataRow r in dt.Rows)
{
Console.WriteLine(r["strName"]);
}
oconn.Close();
Console.Read(); 三、通过ADO.NET获取Excel文件的各Sheet名称,可使用元数据方式: 获取Excel文档里所有的表名
using(OleDbConnection oconn = new OleDbConnection(str))
{
oconn.Open();
DataTable dt = oconn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); foreach (DataRow row in dt.Rows)
{
Console.WriteLine(row["TABLE_NAME"]);
}
}
四、关于使用ADO.NET创建并写入Excel文件与普通数据库操作极为类似, string sql="Create Table TestSheet ([ID] INTEGER,[Username] VarChar,[Userpassword] VarChar)";
using (OleDbConnection oconn = new OleDbConnection(str))
{
using (OleDbCommand ocomm = new OleDbCommand(sql, oconn))
{
oconn.Open();
ocomm.ExecuteNonQuery();
ocomm.CommandText = "Insert into TestSheet Values(1,'elmer','password')"; ocomm.ExecuteNonQuery();
}
}
Error:
C#找不到可安装的 ISAM。
C# excel2007外部表不是预期的格式
百度搜索“爱华网”,专业资料,生活学习,尽在爱华网