C#编程读取Excel数据表教程

3星 · 超过75%的资源 需积分: 47 23 下载量 190 浏览量 更新于2024-09-11 1 收藏 633B TXT 举报
"这篇资源是关于使用C#编程语言读取Excel文件的示例代码,主要涉及了如何连接Excel文件并获取数据。" 在C#中读取Excel文件,通常会利用ADO.NET(OLEDB)的数据提供者来实现。在这个例子中,开发者使用了`OleDbConnection`对象来建立与Excel文件的连接,`OleDbDataAdapter`来填充数据到`DataSet`中,从而获取Excel的工作表数据。以下是对这段代码的详细解析: 首先,定义了一个`DataTable`对象`dt`和一个`DataSet`对象`ds`,它们将用于存储从Excel文件中读取的数据。 ```csharp DataTable dt; DataSet ds = new DataSet(); ``` 接着,创建了一个`OleDbConnection`实例`objConn`,并配置连接字符串以指向Excel文件。这里使用的连接字符串适用于Excel 2003及更早版本的`.xls`文件,它使用了`Microsoft.Jet.OLEDB.4.0`提供者,并指定了工作簿的路径和Excel 8.0的扩展属性: ```csharp OleDbConnection objConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\\Book1.xls;ExtendedProperties=Excel8.0;"); ``` 请注意,如果处理的是Excel 2007或更高版本的`.xlsx`文件,需要更换提供者为`Microsoft.ACE.OLEDB.12.0`。 然后,打开数据库连接: ```csharp objConn.Open(); ``` 通过`GetOleDbSchemaTable`方法获取Excel中的表格信息,这一步并不是必需的,但可以用来了解Excel文件中存在的工作表: ```csharp DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); ``` 接下来,定义SQL查询语句,选择`Sheet1`工作表中的所有列: ```csharp string strSql = "select * from [Sheet1$]"; ``` 使用`OleDbDataAdapter`填充`DataSet`: ```csharp OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn); myData.Fill(ds, "Sheet1"); ``` 关闭数据库连接以释放资源: ```csharp objConn.Close(); ``` 最后,将`DataSet`中的数据表赋值给`dt`,并显示第一行第一列的数据到文本框`Text1`: ```csharp dt = ds.Tables["Sheet1"]; Text1.Text = dt.Rows[0][0].ToString(); ``` 这个示例代码对于基础的Excel数据读取是十分实用的,但需要注意的是,它不包含任何错误处理或异常捕获。在实际开发中,应该增加适当的错误处理机制,例如检查文件是否存在,是否能正确打开,以及数据读取过程中可能出现的其他问题。此外,如果需要处理大量数据或复杂的数据结构,可能需要考虑使用其他库,如NPOI或EPPlus,它们提供了更强大和灵活的功能。