C#使用NPOI读取电子表格Excel到DataGridView中
程序员文章站
2024-02-23 19:35:28
...
上篇博文中已经介绍了如何写入Excel文件。这篇再介绍一下 如何从Excel中读取数据并保存到DataGridView中。
从Excel中读取数据并保存至DataGridView中,Excel文件第一行为表格列标题,从第二行开始为数据。
需要了解的内容有:
- 引入命名空间;
- 创建文件流;
- 创建与文件对应的workbook;
- 获取sheet;
- 获取行row;
- 获取单元格cell;
- 获取单元格的值
1.引入命名空间:
本文操作所用到的NPOI中命名空间有:
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
2.创建文件流:
使用FileStream创建文件流FileStream fs = new FileStream(文件路径, 文件操作方式, 文件读写权限);
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
3.创建于文件对应的workbook:
HSSFWorkbook workbook = new HSSFWorkbook(fs);
4.获取sheet:
ISheet sheet = workbook.GetSheetAt(0);//获取第一个工作表
ISheet sheet = workbook.GetSheet("Sheet1");//获取指定名称的工作表
5.获取行row:
IRow row = sheet.GetRow(i); //获取i行
6.获取单元格cell:
ICell cell = row.GetCell(j);//获取j列
7.获取单元格的值:
获取单元格的值直接通过cell的方法cell.ToString()就可以了。
放个例子:
//------------【函数:从Excel文件读取数据到表格控件】------------
//filePath为Excel文件路径名
//datagGridView要显示数据的表格控件
//------------------------------------------------
public static bool ReadFromExcel(string filePath, DataGridView dataGridView)
{
bool result = true;
FileStream fs = null;//创建一个新的文件流
HSSFWorkbook workbook = null;//创建一个新的Excel文件
ISheet sheet = null;//为Excel创建一张工作表
//定义行数、列数
int rowCount = 0;//记录Excel中的行数
int colCount = 0;//记录Excel中的列数
//判断文件是否存在
if (!File.Exists(filePath))
{
result = false;
return result;
}
//创建指向文件的工作表
try
{
fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
workbook = new HSSFWorkbook(fs);//.xls
if (fs != null)
{
fs.Close();
fs.Dispose();
fs = null;
}
sheet = workbook.GetSheetAt(0);
if (sheet == null)
{
result = false;
return result;
}
rowCount = sheet.LastRowNum;
colCount = sheet.GetRow(0).LastCellNum;
dataGridView.Rows.Clear();
dataGridView.Columns.Clear();
for (int j = 0; j < colCount; j++) //列循环
{
ICell cell = sheet.GetRow(0).GetCell(j);//获取列
dataGridView.Columns.Add(j.ToString()+ cell.ToString(), cell.ToString());
}
for (int i = 1; i < rowCount; i++) //行循环
{
IRow row = sheet.GetRow(i); //获取i行
int index = dataGridView.Rows.Add();
colCount = row.LastCellNum;
for (int j = 0; j < colCount; j++) //列循环
{
ICell cell = row.GetCell(j);//获取j列
dataGridView.Rows[index].Cells[j].Value = cell.ToString();
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
result = false;
return result;
}
return result;
}
如何将Excel内数据读取到DataGridView中,参考上篇博文:http://blog.csdn.net/nicewe/article/details/79620280
本文的源文件程序(Visual Studio 2017)与NPOI.DLL文件下载地址:https://download.csdn.net/download/nicewe/10296960
上一篇: python 处理电子表格
下一篇: Vue导出数据到Excel电子表格
推荐阅读
-
C#使用NPOI读取电子表格Excel到DataGridView中
-
C#使用NPOI将DataGridView内数据写入电子表格Excel
-
c#利用Excel直接读取数据到DataGridView
-
c#利用Excel直接读取数据到DataGridView
-
使用NPOI将Excel表导入到数据库中
-
C# Net 使用 openxml 写入 对象 到 Excel 中
-
C#使用oledb读取excel表格内容到datatable的方法
-
使用NPOI将Excel表导入到数据库中
-
C#中将DataGridView中的数据导入到Csv文件及导出到Excel
-
C#中将DataGridView中的数据导入到Csv文件及导出到Excel