Winform中使用NPOI实现Excel导入并赋值给DataTable | 您所在的位置:网站首页 › datatables教程 › Winform中使用NPOI实现Excel导入并赋值给DataTable |
private void button2_Click(object sender, EventArgs e) { ISheet sheet = null; DataTable data = new DataTable(); IWorkbook workbook = null; int startRow = 0; try { //获取文件名,不带路径 string fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1); //以文件流的形式打开文件 fs = new FileStream(localFilePath, FileMode.Open, FileAccess.Read); // 2007版本 if (fileNameExt.IndexOf(".xlsx") > 0) workbook = new XSSFWorkbook(fs); // 2003版本 else if (fileNameExt.IndexOf(".xls") > 0) workbook = new HSSFWorkbook(fs); if (fileNameExt != null) { sheet = workbook.GetSheet("sheet1"); //如果没有找到指定的sheetName对应的sheet,则尝试获取第一个sheet if (sheet == null) { sheet = workbook.GetSheetAt(0); } } else { sheet = workbook.GetSheetAt(0); } if (sheet != null) { IRow firstRow = sheet.GetRow(0); //第一行最后一个cell的编号 即第一行总的列数 int cellCount = firstRow.LastCellNum; for (int i = firstRow.FirstCellNum; i < cellCount; ++i) { ICell cell = firstRow.GetCell(i); if (cell != null) { string cellValue = cell.StringCellValue; if (!string.IsNullOrEmpty(cellValue)) { //设置DataTable的第一行的显示内容即标题行 DataColumn column = new DataColumn(cellValue); data.Columns.Add(column); } } } //excel表格中的第一行作为dataTable的标题 //所以从第二行开始 startRow = sheet.FirstRowNum+1; //获取最后一行的标号 int rowCount = sheet.LastRowNum; for (int i = startRow; i |
CopyRight 2018-2019 实验室设备网 版权所有 |