标签:XLSX cell value else NOPI CellType time new XLS
public class ExcelBase { public List<TModel> ImportData<TModel>(Stream stream, string templatePath,string fileName, int begin = 2) where TModel : class, new() { IWorkbook workbook = null; if(fileName.ToLower().EndsWith(".xlsx")) workbook= new XSSFWorkbook(stream); else workbook = new HSSFWorkbook(stream); ISheet sheet = workbook.GetSheetAt(0); List<TModel> lst = new List<TModel>(); int rowNum = sheet.LastRowNum; bool flag = true; for (int i = begin; i <= rowNum; i++)//第一行为标题,第二行为列名,不进行取数据 { flag = true; TModel model = ExcelUtil.CreateFromExcel<TModel>(templatePath, (column, symbol) =>//symbol:2日期时间格式 { try { object value = null; ICell cell = sheet.GetRow(i).GetCell(column); if (cell != null) { if (symbol == 2)//日期时间格式 { if (cell.CellType == CellType.Blank) return null; DateTime time; if (cell.CellType == CellType.Numeric) { if (DateUtil.IsValidExcelDate(cell.NumericCellValue)) { time = cell.DateCellValue; } else { time = DateUtil.GetJavaDate(cell.NumericCellValue); } } else if (cell.CellType == CellType.String) { time = DateTime.Parse(cell.StringCellValue); } else if (cell.CellType == CellType.Formula) { time = DateTime.Parse(cell.NumericCellValue.ToString()); } else { time = DateTime.Parse(cell.ToString()); } return time; } else { switch (cell.CellType) { case CellType.Boolean: { value = cell.BooleanCellValue; break; } case CellType.Numeric: { DecimalFormat df = new DecimalFormat("#.#####"); System.Globalization.CultureInfo cf = new System.Globalization.CultureInfo("ZH-CN", true); value = df.Format(cell.NumericCellValue, cf); //value = cell.NumericCellValue; break; } case CellType.String: { value = cell.StringCellValue ?? string.Empty; break; } case CellType.Formula: { value = cell.NumericCellValue.ToString() ?? string.Empty; break; } default: { value = cell.ToString(); break; } } } } return value; } catch (Exception ex) { flag = false; return null; } }, rowNum); if (!flag) { //errorList.Add(model); } else if (model != null) { lst.Add(model); } else { continue; } } return lst; } }
标签:XLSX,cell,value,else,NOPI,CellType,time,new,XLS 来源: https://blog.51cto.com/3002711/2670144
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。