c# winform读取excel
时间: 2023-07-18 19:06:25 浏览: 122
在 C# WinForm 中读取 Excel 有多种方法,其中比较常用的是通过 OLEDB 或者 Interop.Excel 库。
使用 OLEDB:
1. 添加引用:在项目中添加对 Microsoft.Office.Interop.Excel 的引用。
2. 创建连接:使用 OleDbConnection 对象创建与 Excel 文件的连接,并设置连接字符串。
3. 打开连接:使用 OleDbConnection.Open() 方法打开连接。
4. 查询数据:使用 OleDbCommand 对象执行查询,并将结果存储在 OleDbDataReader 对象中。
5. 关闭连接:使用 OleDbConnection.Close() 方法关闭连接。
示例代码:
```csharp
string filePath = @"C:\Users\username\Documents\Book1.xlsx";
string connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={filePath};Extended Properties='Excel 12.0;HDR=YES;'";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
string query = "SELECT * FROM [Sheet1$]";
using (OleDbCommand command = new OleDbCommand(query, connection))
{
using (OleDbDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
//读取数据
string value1 = reader["Column1"].ToString();
string value2 = reader["Column2"].ToString();
}
}
}
}
```
使用 Interop.Excel:
1. 添加引用:在项目中添加对 Microsoft.Office.Interop.Excel 的引用。
2. 创建工作簿:使用 Application 对象创建 Excel 应用程序,并打开 Excel 文件。
3. 获取工作表:使用 Workbook 对象获取要读取的工作表。
4. 读取数据:使用 Range 对象读取单元格数据。
5. 关闭 Excel 应用程序:使用 Application.Quit() 方法关闭 Excel 应用程序。
示例代码:
```csharp
string filePath = @"C:\Users\username\Documents\Book1.xlsx";
Application excelApp = new Application();
Workbook excelWorkbook = excelApp.Workbooks.Open(filePath);
Worksheet excelWorksheet = excelWorkbook.Sheets["Sheet1"];
Range range = excelWorksheet.UsedRange;
for (int row = 1; row <= range.Rows.Count; row++)
{
//读取数据
string value1 = (range.Cells[row, 1] as Range)?.Value.ToString();
string value2 = (range.Cells[row, 2] as Range)?.Value.ToString();
}
excelWorkbook.Close();
excelApp.Quit();
```
阅读全文