Пример #1
0
        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));
            }
        }
Пример #2
0
        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 = "添加数据失败,请联系管理员"
                });
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        //批量导入建议采用此方案
        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);
        }