使用模板验证Excel

时间:2019-10-29 04:53:58

标签: c# asp.net asp.net-web-api asp.net-web-api2 excel-2010

我在应用程序中具有批量上传要求,用户需要下载excel模板文件并填写数据,然后将填充的excel上传回服务器,服务器需要验证以下属性,

  1. 文件大小和文件扩展名。
  2. 上传文件的版本是否与下载文件的版本相同。
  3. Excel工作表中列的数据格式是否与下载文件的格式相同,并且没有损坏。

我能够实现文件大小和文件扩展名的验证#1,并且使用ExcelDataReader进行解析,并且能够成功解析excel数据。我正在寻找帮助

  1. 弄清楚如何为excel设置文件版本并锁定它,以便没有人可以在下载后对其进行编辑并在上传过程中对其进行验证。

  2. 验证上载的excel中每一列的数据格式。


      public async Task<IActionResult> CreateBulkInternalEngagement()
        {
            BaseRequest baseRequest = this.GetBaseRequestDetails();

            UploadFileRequest filerequest = null;

            if (this._httpContextHelper.HttpContext.Request.HasFormContentType)
            {
                var file = this._httpContextHelper.HttpContext.Request.Form.Files.FirstOrDefault();
                this.ValidateFileExtension(file.FileName);

                filerequest = new UploadFileRequest
                {
                    FileName = file.FileName,
                    ContentType = file.ContentType,
                    ContentDisposition = file.ContentDisposition
                };

                using (var ms = new MemoryStream())
                {
                    file.CopyTo(ms);
                    filerequest.ByteArray = ms.ToArray();
                }
            }
            else
            {
                this.ModelState.AddModelError("CreateBulkInternalEngagement", PlatformExceptionConfig.PlatformErrorMessages[PlatformExceptionConstants.InvalidInput]);
            }

            var error = ModelStateValidator.ValidateModelState(this.ModelState, "CreateBulkInternalEngagement");
            if (error != null)
            {
                return this.BadRequest(error);
            }

            var result = await this._wbsService.UploadBulkEngagement(baseRequest, filerequest);
            return new ObjectResult(result);
        }

0 个答案:

没有答案