c#从前端接收excel表将其数据导入到数据库中
/// <summary> /// 数据导入 /// </summary> /// <param name="files">数据文件</param> /// <returns></returns> public string Import(HttpFileCollection files) { string msg = ""; if (files.Count > 0) { // 获取文件转化为流 var file = files[0]; Stream fileStream = file.InputStream; IWorkbook workbook; if (file.FileName.EndsWith(".xls")) { workbook = new HSSFWorkbook(fileStream); } else { workbook = new XSSFWorkbook(fileStream); } // 数据导入 var m = Import(workbook); if (!string.IsNullOrEmpty(m)) { msg += $"{file.FileName}\n:" + m; } else { msg += $"{file.FileName}:导入成功"; } //流关闭 fileStream.Close(); } return msg; } public string Import(IWorkbook workbook) { string err = ""; ISheet sheet0 = workbook.GetSheetAt(0); //获取第一个表 if (sheet0.LastRowNum >= 101) { return "抱歉,一次最多只能导入100条"; } for (int j = 1; j <= sheet0.LastRowNum; j++) //对工作表每一行 { IRow row = sheet0.GetRow(j); //row读入第i行数据 if (row != null) { table data = new table() {
//根据数据类型填入表中
string = row.GetCell(0).StringCellValue, date = row.GetCell(1).DateCellValue, int = row.GetCell(2).NumericCellValue }; // 添加到数据库 _dbContext.table.Add(data); } } // 保存到到数据库 _dbContext.SaveChanges(); return err; }