C# 使用 OleDbConnection 连接读取Excel的方法
要使用 C# 语言连接读取 Excel 文件,可以使用 OleDbConnection 类进行操作。下面将介绍 C# 使用 OleDbConnection 连接读取 Excel 的方法及示例。
步骤一:引用命名空间
使用 OleDbConnection 类需要引用以下命名空间:
using System.Data;
using System.Data.OleDb;
步骤二:创建连接
需要使用 OleDbConnection 类创建连接,其中连接字符串分为两类:
- 旧版 Excel 连接字符串,数据源为 .xls 文件格式,如下所示:
csharp
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\folder\file.xls;Extended Properties='Excel 8.0;HDR=YES;'";
- 新版 Excel 连接字符串,数据源为 .xlsx 文件格式,如下所示:
csharp
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\folder\file.xlsx;Extended Properties='Excel 12.0;HDR=YES;'";
需要注意的是,在创建连接字符串时,需要使用数据源的路径及文件名,可以在 Extended Properties 中指定 Excel 版本及 Sheet 名称。
步骤三:读取数据
使用 OleDbConnection 的 ExecuteReader 方法可以执行 SQL 语句,并返回用来读取数据的 OleDbDataReader 对象。示例如下:
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", connection);
using (OleDbDataReader dataReader = command.ExecuteReader())
{
while (dataReader.Read())
{
Console.WriteLine(dataReader[0].ToString());
}
}
}
上述示例中,我们使用 SELECT * FROM [Sheet1$]
SQL 语句来读取 Sheet1 表的全部数据,并使用 OleDbDataReader 对象遍历数据。
示例一:读取 Excel 文件并输出内容
using System;
using System.Data;
using System.Data.OleDb;
namespace ReadExcel
{
class Program
{
static void Main(string[] args)
{
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\temp\data.xlsx;Extended Properties='Excel 12.0;HDR=YES;'";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
connection.Open();
OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", connection);
using (OleDbDataReader dataReader = command.ExecuteReader())
{
while (dataReader.Read())
{
for (int c = 0; c < dataReader.FieldCount; c++)
{
Console.Write(dataReader[c].ToString() + " ");
}
Console.WriteLine();
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
connection.Close();
}
}
}
}
}
上述示例中,我们以 data.xlsx 文件为数据源,使用 OleDbConnection 对象连接 data.xlsx 文件,并使用 command.ExecuteScalar 方法获取 Sheet1 表的全部数据并输出。
示例二:查询 Excel 文件并显示结果
using System;
using System.Data;
using System.Data.OleDb;
namespace ReadExcel
{
class Program
{
static void Main(string[] args)
{
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\temp\data.xlsx;Extended Properties='Excel 12.0;HDR=YES;'";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
connection.Open();
OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$] WHERE ID < 4", connection);
using (OleDbDataReader dataReader = command.ExecuteReader())
{
while (dataReader.Read())
{
for (int c = 0; c < dataReader.FieldCount; c++)
{
Console.Write(dataReader[c].ToString() + " ");
}
Console.WriteLine();
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
connection.Close();
}
}
}
}
}
上述示例中,我们以 data.xlsx 文件为数据源,使用 OleDbConnection 对象连接 data.xlsx 文件,并使用 command.ExecuteScalar 方法获取 Sheet1 表中 ID 小于 4 的数据并输出。
以上就是 C# 使用 OleDbConnection 连接读取 Excel 的方法及示例。希望可以帮助你更好地进行 Excel 数据读取。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 使用 OleDbConnection 连接读取Excel的方法 - Python技术站