C# 通过NPOI读取excel到gridcontrol控件中
时间: 2024-10-21 12:08:17 浏览: 57
在C#中,你可以使用NPOI库(NuGet包Apache POI的一个.NET封装)来读取Excel文件并将其数据填充到DataGridView(GridControl)控件中。以下是简单的步骤:
1. 首先,确保已经安装了NPOI库。如果你还没有安装,可以使用NuGet Package Manager或命令行工具(`Install-Package NPOI`)来添加。
2. 引入必要的命名空间:
```csharp
using System.IO;
using NPOI.HSSF.usermodel; // 对于处理HSSF(.xls文件)
// 或者
using NPOI.XLSX.usermodel; // 对于处理XLSX(.xlsx文件)
using System.Data;
```
3. 创建一个方法来读取Excel文件并将数据加载到DataGridView:
```csharp
public void LoadDataFromExcel(string filePath, DataGridView dataGridView)
{
if (File.Exists(filePath))
{
Workbook workbook;
ISheet sheet;
// 根据文件类型选择合适的Workbook打开方式
if (Path.GetExtension(filePath).Equals(".xls"))
workbook = new HSSFWorkbook(File.Open(filePath));
else if (Path.GetExtension(filePath).Equals(".xlsx"))
workbook = new XSSFWorkbook(File.Open(filePath));
try
{
sheet = workbook.GetSheetAt(0); // 假设第一个工作表
DataTable dataTable = new DataTable();
var rowIterator = sheet.LastRowNum == -1 ? sheet.FirstRowNum : sheet.LastRowNum + 1;
for (int rowNum = rowIterator; rowNum > 0; rowNum--)
{
Row row = sheet.GetRow(rowNum);
if (row != null)
{
var dataRow = dataTable.NewRow();
foreach (var cell in row.Cells)
{
dataRow[cell.ColumnIndex] = cell.StringCellValue; // 如果是字符串值
// 对于其他类型的cell,比如数字、日期等,需要转换处理
}
dataGridView.Rows.Add(dataRow);
}
}
}
finally
{
workbook.Close(); // 关闭文件
}
}
else
{
throw new FileNotFoundException("Excel file not found.");
}
}
```
4. 调用该方法并将结果显示在DataGridView上:
```csharp
LoadDataFromExcel("path_to_your_excel_file.xlsx", dataGridView1);
```
阅读全文
相关推荐


















