Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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# 在控制台窗口中Z之后电子表格列值未正确显示_C#_Excel_Ascii - Fatal编程技术网

C# 在控制台窗口中Z之后电子表格列值未正确显示

C# 在控制台窗口中Z之后电子表格列值未正确显示,c#,excel,ascii,C#,Excel,Ascii,下面的代码从Excel电子表格中获取数据,验证一组预定义规则中的数据,并将任何错误写入控制台 这在一定程度上起作用。数据按预期返回到Z列。如果返回任何错误,则传递Z.AB、AC、AD等。然后返回值开始弄乱返回的I get值,如]、~、?。我相信这个问题可以归结为ASCII,因为我从公元65年12月开始。我想我需要写一些方法来处理这个问题,但不知道从哪里开始。非常感谢您的帮助 namespace WorksheetValidator { public class XcelReader

下面的代码从Excel电子表格中获取数据,验证一组预定义规则中的数据,并将任何错误写入控制台

这在一定程度上起作用。数据按预期返回到Z列。如果返回任何错误,则传递Z.AB、AC、AD等。然后返回值开始弄乱返回的I get值,如]、~、?。我相信这个问题可以归结为ASCII,因为我从公元65年12月开始。我想我需要写一些方法来处理这个问题,但不知道从哪里开始。非常感谢您的帮助

namespace WorksheetValidator
{
    public class XcelReader
    {
        private readonly List<List<IRule>> m_Rules;

        public XcelReader(List<List<IRule>> rules)
        {
            m_Rules = rules;
        }

        public void ValidateWorksheet(string fileName)
        {
            bool allRulesPassed = true;

            WorkbookProvider workbookProvider = new WorkbookProvider();

            IWorkbook workbook;

            using (FileStream fileStream = File.OpenRead(fileName))
                workbook = workbookProvider.GetWorkbook(fileStream, SpreadsheetType.Xlsx);

            for (int rowCounter = 1; rowCounter < workbook.Worksheets[1].Rows.Count; rowCounter++)
            {
                IRow row = workbook.Worksheets[1].Rows[rowCounter];

                for (int columnCounter = 0; columnCounter < row.Cells.Count; columnCounter++)
                {
                    List<string> failedRules = ColumnValueIsValid(row.Cells[columnCounter].Value, m_Rules[columnCounter]);

                    failedRules.ForEach(failedRule =>
                    {
                        allRulesPassed = false;
                        Console.WriteLine("\n[{0}:{1}] Failed: {2}", rowCounter + 1, (char)(columnCounter + 65), failedRule);
                    });
                }
            }

            if(allRulesPassed)
                Console.WriteLine("\n\n\nWOOHOO! worksheet is hunky dory");
        }

        private List<string> ColumnValueIsValid(string value, List<IRule> rules)
        {
            List<string> failedRules = new List<string>();

             rules.ForEach(rule =>
             {
                 if(!rule.IsValid(value))
                     failedRules.Add(rule.GetReasonForFailure(value));
             });

            return failedRules;
        }
    }
}
替换此项:

(char)(columnCounter + 65)
使用将0转换为a、1转换为B的函数。。。。。26至AA,27至AB等