diff --git a/SGGL/BLL/Common/NPOIHelper.cs b/SGGL/BLL/Common/NPOIHelper.cs index b376f00d..57e9cbdf 100644 --- a/SGGL/BLL/Common/NPOIHelper.cs +++ b/SGGL/BLL/Common/NPOIHelper.cs @@ -22,7 +22,7 @@ namespace BLL /// /// Excel文件路径 /// - public static DataTable ExcelToDataTable(string filePath) + public static DataTable ExcelToDataTable1(string filePath) { var dt = new DataTable(); using (var file = new FileStream(filePath, FileMode.Open, FileAccess.Read)) @@ -85,6 +85,94 @@ namespace BLL } return dt; } + public static DataTable ExcelToDataTable(string filePath) + { + var dt = new DataTable(); + using (var file = new FileStream(filePath, FileMode.Open, FileAccess.Read)) + { + var hssfworkbook = new HSSFWorkbook(file); + var sheet = hssfworkbook.GetSheetAt(0); + var rows = sheet.GetRowEnumerator(); + rows.MoveNext(); + var row = (HSSFRow)rows.Current; + for (var j = 0; j < row.LastCellNum; j++) + { + var cell = row.GetCell(j); + if (cell != null) + { + dt.Columns.Add(cell.StringCellValue); + } + else + { + dt.Columns.Add("collum" + j); + } + + } + while (rows.MoveNext()) + { + row = (HSSFRow)rows.Current; + var dr = dt.NewRow(); + for (var i = 0; i < row.LastCellNum; i++) + { + var cell = row.GetCell(i); + if (cell == null) + { + dr[i] = null; + } + else + { + try + { + switch (cell.CellType) + { + case CellType.Blank: + //dr[i] = "[null]"; + break; + case CellType.Boolean: + dr[i] = cell.BooleanCellValue; + break; + case CellType.Numeric: + dr[i] = cell.ToString(); + break; + case CellType.String: + dr[i] = cell.StringCellValue; + break; + case CellType.Error: + dr[i] = cell.ErrorCellValue; + break; + case CellType.Formula: + try + { + dr[i] = cell.NumericCellValue; + } + catch + { + try + { + dr[i] = cell.StringCellValue; + } + catch + { + dr[i] = null; + } + } + break; + default: + dr[i] = "=" + cell.CellFormula; + break; + } + } + catch (Exception ex) + { + } + } + } + dt.Rows.Add(dr); + } + } + return dt; + } + /// /// Excel转换成DataSet(.xlsx/.xls)