Можно ли динамически создавать переменные на основе строк в файле Excel в C#? - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь создать программу C#, которая берет координаты из файла Excel в том смысле, что каждый столбец - это x, y, z и r соответственно, а каждая строка - это отдельная точка. Я хотел бы иметь возможность создавать переменные в формате point0, point1, et c. в зависимости от количества строк.

На данный момент я считываю каждую ячейку в массив, а затем вручную создаю точки из этого массива. В этом случае есть 4 ряда и 4 точки (точки от 0 до 3). На данный момент это работает, но я должен представить, что есть более простой способ сделать это или, по крайней мере, что-то более динамичное c. 4 балла - это не проблема, но их может быть намного больше. скажите что-нибудь, например

       for(int i = 0; i < rows; i++)
       {
           for(int j = 0; j < cols; j++)
           {
               point+"i"[i,j] = points[i,j]
           }
       }

Где i-я итерация объединена с именем переменной.

Любая помощь будет принята с благодарностью, и я открыт для всех рекомендаций (я довольно новичок в C# если не можете сказать)

1 Ответ

0 голосов
/ 05 августа 2020

Я бы определил класс того, что означает комбинация четырех точек. Не на основе строки или столбца, в которых они хранятся, а на том, что они на самом деле представляют.

public class Shape
{
    public int Start { get; set; }
    public int End { get; set; }
    public int Mean { get; set; }
    public int Median { get; set; }
}

Затем, пропуская oop через каждую строку, вы можете Создать и добавить все четыре точки одновременно . Что-то вроде этого.

publi c List GetShapesFromExcel () {var list = new List ();

        int StartColumn = 'x';
        int EndColumn = 'y';
        int MeanColumn = 'z';
        int MedianColumn = 'r';

        foreach (var row in workSheet)
        {
            var shape = new Shape()
            {
                Start = excel.ReadCell(row, StartColumn);
                End = excel.ReadCell(row, EndColumn);
                Mean = excel.ReadCell(row, MeanColumn);
                Median = excel.ReadCell(row, MedianColumn);
            };
        
        }
    return list;
    }

Я бью в темноте по тому, что вы Данные на самом деле представляют, но я бы потратил время на go вперед и превратил бы их в реальный объект, чтобы было легче рассуждать, когда вы пишете код.

переменные, такие как 'I' & 'J' Не экономьте достаточно времени в этом случае, чтобы быть полезным.

последнее предложение - go вперед и проверить пакет EPPlus. этот пакет имеет возможность превращать строки в структурированные классы

проверьте это, чтобы начать. Как преобразовать строки Excel обратно в типы с помощью EPPlus

...