在visual studio 2019创建一个Form窗体文件,设计一个Button按钮和一个GridView控件(用来显示Excel中的数据)
private void Button1_Click(object sender, EventArgs e) { //实例化DataTable来存放数据 DataTable dt = new DataTable(); string fileName = @"你的文件路径"; string sheetName = "sheet1";//Excel的工作表名称 bool isColumnName = true;//判断第一行是否为标题列 IWorkbook workbook;//创建一个工作薄接口 string fileExt = Path.GetExtension(fileName).ToLower();//获取文件的拓展名 //创建一个文件流 using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { if (fileExt == ".xlsx") { workbook = new XSSFWorkbook(fs); } else { workbook = null; } //实例化sheet ISheet sheet = null; if (sheetName != null && sheetName != "")//判断是否存在sheet { sheet = workbook.GetSheet(sheetName); if (sheet == null) { sheet = workbook.GetSheetAt(0);//从第一个开始读取,0位索引 } else { sheet = workbook.GetSheetAt(0); } } //获取表头 IRow header = sheet.GetRow(sheet.FirstRowNum); int startRow = 0;//数据的第一行索引 if (isColumnName)//表示第一行是列名 { startRow = sheet.FirstRowNum + 1;//数据从第二行开始读 //遍历表的第一行,即所有的列名 for (int i = header.FirstCellNum; i < header.LastCellNum; i++) { ICell cell = header.GetCell(i); if (cell != null) { //获取列名的值 string cellValue = cell.ToString(); if (cellValue != null) { DataColumn col = new DataColumn(cellValue); dt.Columns.Add(col); } else { DataColumn col = new DataColumn(); dt.Columns.Add(col); } } } } //读取数据 for (int i = startRow; i <= sheet.LastRowNum; i++) { IRow row = sheet.GetRow(i); if (row == null) { continue; } DataRow dr = dt.NewRow(); for (int j = row.FirstCellNum; j < row.LastCellNum; j++) { if (row.GetCell(j) != null) { dr[j] = row.GetCell(j).ToString(); } } dt.Rows.Add(dr); } } dataGridView1.DataSource = dt; }
然后启动程序,点击button按钮,即可读取Excel中的数据。