public async Task <ActionResult> Import(IFormFile excelfile) { //超级管理员有权限 var GroupId = User.Claims.FirstOrDefault(a => a.Type == "GroupId").Value; var isAdmin = User.Claims.FirstOrDefault(a => a.Type == "IsAdmin").Value.ToLower() == "true" ? true : false; string Code = User.Claims.FirstOrDefault(a => a.Type == "Code").Value; string Account = User.Claims.FirstOrDefault(a => a.Type == "Account").Value; if (!(isAdmin && Code == _config["Group"])) { return(Unauthorized("用户没有权限删除数据定义库")); } string sWebRootFolder = _webHostEnvironment.WebRootPath; string sFileName = $"{Guid.NewGuid()}.xlsx"; string path = Path.Combine(sWebRootFolder, "Excel"); //如果路径不存在,创建路径 if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } FileInfo file = new FileInfo(Path.Combine(path, sFileName)); try { using (FileStream fs = new FileStream(file.ToString(), FileMode.Create)) { //excelfile.CopyTo(fs); //fs.Flush(); await excelfile.CopyToAsync(fs); } ExcelPackage.LicenseContext = LicenseContext.NonCommercial; using (ExcelPackage package = new ExcelPackage(file)) { //StringBuilder sb = new StringBuilder(); List <DataDefineLibraryAddDto> list = new List <DataDefineLibraryAddDto>(); ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; int rowCount = worksheet.Dimension.Rows; int ColCount = worksheet.Dimension.Columns; //bool bHeaderRow = true; for (int row = 2; row <= rowCount; row++) { DataDefineLibraryAddDto d = new DataDefineLibraryAddDto(); //for (int col = 1; col <= ColCount; col++) //{ d.DataKey = worksheet.Cells[row, 2].Value == null ? "" : worksheet.Cells[row, 2].Value.ToString(); d.Unit = worksheet.Cells[row, 8].Value == null ? "string" : worksheet.Cells[row, 8].Value.ToString(); //} list.Add(d); } return(null); //return Content(sb.ToString()); } } catch (Exception ex) { return(Content(ex.Message)); } }
public async Task <BaseResponse> AddDataDefineAsync(DataDefineLibraryAddDto req, string account) { var data = await _dlr.Find(a => a.DataKey == req.DataKey || a.DataName == req.DataName).FirstOrDefaultAsync(); if (data != null) { return(new BaseResponse { Success = false, Message = "已存在相同的Key或者相同名称的数据定义" }); } var entity = _mapper.Map <DataDefineLibraryModel>(req); try { entity.Create = account; await _dlr.AddAsync(entity); _log.LogInformation($"{account}添加数据定义库数据成功,添加的key为{req.DataKey}"); return(new HandleResponse <int>() { Success = true, Message = "添加数据成功", Key = entity.Id }); } catch (Exception ex) { _log.LogError($"{account}添加key值为:{req.DataKey}数据定义库失败,失败原因:{ex.Message}->{ex.StackTrace}->{ex.InnerException}"); return(new BaseResponse { Success = false, Message = "添加数据失败,请联系管理员" }); } }
public async Task <ActionResult <BaseResponse> > Add([FromBody] DataDefineLibraryAddDto req) { //超级管理员有权限 var GroupId = User.Claims.FirstOrDefault(a => a.Type == "GroupId").Value; var isAdmin = User.Claims.FirstOrDefault(a => a.Type == "IsAdmin").Value.ToLower() == "true" ? true : false; string Code = User.Claims.FirstOrDefault(a => a.Type == "Code").Value; string Account = User.Claims.FirstOrDefault(a => a.Type == "Account").Value; if (!(isAdmin && Code == _config["Group"])) { return(Unauthorized("用户没有权限添加数据定义库")); } var rm = await _dls.AddDataDefineAsync(req, Account); return(rm); }
//批量导入建议采用此方案 public async Task <ActionResult> Excel(IFormFile excel) { //超级管理员有权限 var GroupId = User.Claims.FirstOrDefault(a => a.Type == "GroupId").Value; var isAdmin = User.Claims.FirstOrDefault(a => a.Type == "IsAdmin").Value.ToLower() == "true" ? true : false; string Code = User.Claims.FirstOrDefault(a => a.Type == "Code").Value; string Account = User.Claims.FirstOrDefault(a => a.Type == "Account").Value; if (!(isAdmin && Code == _config["Group"])) { return(Unauthorized("用户没有权限删除数据定义库")); } string[] extensionName = new string[] { ".XLSX", ".XLS" }; string sWebRootFolder = _webHostEnvironment.WebRootPath; string sFileName = $"{Guid.NewGuid()}.xlsx"; string path = Path.Combine(sWebRootFolder, "Excel"); string p = Path.Combine(path, sFileName); //如果路径不存在,创建路径 if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } FileInfo filePath = new FileInfo(Path.Combine(path, sFileName)); try { using (FileStream fs = new FileStream(filePath.ToString(), FileMode.Create)) { //excelfile.CopyTo(fs); //fs.Flush(); await excel.CopyToAsync(fs); } using (FileStream file = new FileStream(p, FileMode.Open, FileAccess.Read)) { //获取需要被导入的excel工作薄 IWorkbook workBook = new XSSFWorkbook(file); //if (workBook.NumberOfSheets > 0) //{ //} for (int v = 0; v < workBook.NumberOfSheets; v++) { var sheet = workBook.GetSheetAt(v); var head = sheet.Header.ToString(); List <DataDefineLibraryAddDto> list = new List <DataDefineLibraryAddDto>(); for (int i = 0; i < sheet.LastRowNum + 1; i++) { var row = sheet.GetRow(i); DataDefineLibraryAddDto d = new DataDefineLibraryAddDto(); if (row != null) { ////LastCellNum 是当前行的总列数 //for (int j = 0; j < row.LastCellNum; j++) //{ // //读取该行的第j列数据 // string value = row.GetCell(j).ToString(); // Console.Write(value.ToString() + " "); //} //Console.WriteLine("\n"); d.DataKey = row.GetCell(2).StringCellValue; d.Unit = row.GetCell(8).StringCellValue; list.Add(d); } } } } } catch { } return(null); }