使用C#连接读取Excel的方法需要使用`OleDbConnection`类。首先需要在项目中引用`System.Data.OleDb`命名空间。
以下是一个示例代码,用于连接并读取Excel文件中的数据:
```csharp
using System;
using System.Data;
using System.Data.OleDb;
class Program
{
static void Main()
{
// Excel文件路径
string filePath = @"C:\path\to\your\file.xlsx";
// 连接字符串
string connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={filePath};Extended Properties='Excel 12.0;HDR=YES;'";
// 创建OleDbConnection对象
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// 打开连接
connection.Open();
// 查询语句
string query = "SELECT * FROM [Sheet1$]";
// 创建OleDbDataAdapter对象
using (OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection))
{
// 创建DataTable对象
DataTable dataTable = new DataTable();
// 填充DataTable
adapter.Fill(dataTable);
// 遍历DataTable中的数据
foreach (DataRow row in dataTable.Rows)
{
foreach (DataColumn column in dataTable.Columns)
{
// 输出每个单元格的值
Console.WriteLine(row[column]);
}
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
Console.ReadLine();
}
}
```
在这个示例中,我们首先指定了Excel文件的路径,然后创建了一个连接字符串。连接字符串中的`Provider`属性指定了数据提供程序,`Data Source`属性指定了Excel文件的路径,`Extended Properties`属性指定了Excel文件的版本和表头行。根据你的Excel文件版本,你可能需要使用不同的数据提供程序和扩展属性。
然后,我们使用`OleDbConnection`类创建了一个连接对象,并将连接字符串传递给它。我们使用`Open`方法打开连接。
接下来,我们定义了一个查询语句,用于从Excel文件的`Sheet1`工作表中检索数据。然后,我们使用`OleDbDataAdapter`类创建了一个适配器对象,并将查询语句和连接对象传递给它。
然后,我们创建了一个`DataTable`对象,并使用适配器的`Fill`方法将数据填充到表中。
最后,我们使用嵌套的`foreach`循环遍历`DataTable`中的每一行和每一列,并输出每个单元格的值。
请确保根据实际的Excel文件路径和工作表名称进行相应的修改,并根据需要进行异常处理。