Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 验证XLSX文件-(EPPlus)ASP.NET中的空字段_C#_Asp.net Mvc_Xlsx - Fatal编程技术网

C# 验证XLSX文件-(EPPlus)ASP.NET中的空字段

C# 验证XLSX文件-(EPPlus)ASP.NET中的空字段,c#,asp.net-mvc,xlsx,C#,Asp.net Mvc,Xlsx,我正在使用ExcelPackage在C#中导入一个XLSX文件。我在Ex导入中进行了一些验证:数值、文本和字段是否为空 注意:如果我的文件中的所有列都已填充,则导入成功 应用程序需要验证工作表中是否有空字段 示例:在{A2:C2}的范围内 其中A2为int型,B2为字符串,C2为浮点型 1 | A2 | B2 | C2 | 2 | | house1 | 50,8 | 3 | 50 | house2 | 50,0 | 我需要抛出一个异常,声明该文件包含空字段 问题是

我正在使用ExcelPackage在C#中导入一个XLSX文件。我在Ex导入中进行了一些验证:数值、文本和字段是否为空

注意:如果我的文件中的所有列都已填充,则导入成功

应用程序需要验证工作表中是否有空字段

示例:在{A2:C2}的范围内

其中A2为int型,B2为字符串,C2为浮点型

1 |  A2  |   B2   |  C2  |
2 |      | house1 | 50,8 |
3 |  50  | house2 | 50,0 |
我需要抛出一个异常,声明该文件包含空字段

问题是,当读取字段A2时,字段B2被忽略,并且字段B2“假定”A2的位置,即字段A2是第一个单元格,因此必须读取它,即使它是空的,并且如果抛出异常,声明它包含空字段

所以我的问题是:我需要“强制”字段,即使它们是空的,如果它们是空的,则抛出异常我该怎么做?

我的代码是:

public static List<ModularCostCapacitor> ReadFlieAndBuildModularCostsCapacitors(HttpPostedFile upLoad) 
 {
    var fileOriginalName = upLoad.FileName;
    var fileOriginalExtension = Path.GetExtension(fileOriginalName);

    int rowNum = 0;

    if (fileOriginalExtension.ToUpper().Equals("XLS") || fileOriginalExtension.ToUpper().Equals("XSLX"))
    {
      try
      {
         using (var excel = new ExcelPackage(upLoad.InputStream))
         {
           var ws = excel.Workbook.Worksheets.First();
           var hasHeader = true;

           int startRow = hasHeader ? 2 : 1;

           for (rowNum = startRow; rowNum <= ws.Dimension.End.Row; rowNum++)
           {
             var wsRow = ws.Cells[rowNum, 1, rowNum, ws.Dimension.End.Column];

            int i = 0;
            foreach (var cell in wsRow)
            {
                switch (i)
                {
                    case 0:
                        if (ValidateCellsXLSX(cell.Text))
                        {
                            // ...
                        }
                        break;
                    case 1:
                        if (!String.IsNullOrEmpty(cell.Text))
                        {
                            // ...
                        }
                        break;
                    case 2:
                        if (ValidateCellsXLSX(cell.Text))
                        {
                            // ...
                        }
                        break;
                    case 3:
                        if (ValidateCellsXLSX(cell.Text))
                        {
                            // ...
                        }
                        break;
                    case 4:
                        if (ValidateCellsXLSX(cell.Text))
                        {
                            // ...
                        }
                        break;
                    case 5:
                        if (ValidateCellsXLSX(cell.Text))
                        {
                            // ...
                        }
                        break;
                    case 6:
                        if (ValidateCellsXLSX(cell.Text))
                        {
                            // ...
                        }
                        break;
                    default:
                        break;
                }
                i++;
            }
        }
    }
}
catch (Exception ex)
{
    throw ex;
}
public静态列表readflieandbuildmodulearcostscapators(HttpPostedFile上传)
{
var fileOriginalName=upLoad.FileName;
var fileOriginalExtension=Path.GetExtension(fileOriginalName);
int rowNum=0;
if(fileOriginalExtension.ToUpper().Equals(“XLS”)| | fileOriginalExtension.ToUpper().Equals(“XSLX”))
{
尝试
{
使用(var excel=new ExcelPackage(upLoad.InputStream))
{
var ws=excel.Workbook.Worksheets.First();
var hasHeader=true;
int startRow=hashheader?2:1;

对于(rowNum=startRow;rowNum你能检查一下吗?这些人似乎有答案。他们的方法不同,但你可能会有一个想法

谢谢,它帮助我了解了如何做。
public static bool ValidateCellsXLSX(string cell)
{
  Regex regex = new Regex(@"[;!*#&@?()'$~^<>ºª%\{}A-Za-z]");

  string validString = cell.Replace("%", "").Replace("R$", "").Replace("-", "");

  Match match = regex.Match(validString);

   if (String.IsNullOrEmpty(cell))
   {
      throw new Exception("File contains empty fields";);
   }
   else if (match.Success)
   {
      throw new Exception("File contains invalid characters");
   }

   return true;
}