kozmikadam Ответов: 1

Работа с несколькими массивами размерности


Всем привет,

Я ищу предложение. Так что позвольте мне объяснить свой проект :

Я получаю некоторые значения из нескольких файлов excel. Там нет никакого количества файлов excel. Это может быть всего 1 файл или 100 файлов.

Я получаю от них ценности: номер отчета а это цифры отчета ценность
В файле excel может быть только 1 номер отчета и значение или 1000 номеров отчетов и значений.

Вот пример файла excel : ( конечно, это не так ясно, как этот пример, я копаю, чтобы получить эти значения )

Excel 1 :

Номер отчета ( столбец 0 ) | значение ( столбец 1 ) // эта строка является заголовком
Report_No_1 (столбец 0 ) | 1,253 (столбец 1) // строка 1
Report_No_4 (столбец 0 ) | 12 (столбец 1) // строка 2
Report_No_2 (столбец 0 ) | 323 (столбец 1) // строка 3
Report_No_28 (столбец 0 ) | 7653 (столбец 1) // строка 4
Report_No_12 (столбец 0 ) | 53 (столбец 1) // строка 5
...


Мне нужно получить все эти данные из этого excels и создать новый excel, подобный этому :

Новый Excel :

Имя Excel (столбец 0 ) | Report_No_1 | Report_No_2 |Report_No_3 |Report_No_4 // эта строка является заголовком
Excel 1 | 1,253 | 323 | Нет | 12
Excel 2 | None | None| 45 | 762
Excel 3 ...
Excel 4 ...
...

Согласно этим образцам, мои цели таковы: :

- Получить все данные от всех excels
- Сортировка всех номеров отчетов от 1 до самого высокого номера отчета
- Добавить столбец для каждого номера отчета
- Запишите каждое значение отчета в правильную ячейку ( номер отчета excel x )

Я думаю создать 3D-массив или список ( я этого не знаю, возможно ли это для списка ? ) вот так : [ имя excel, номер отчета, значение ]
Затем я отсортирую их по номеру отчета и запишу номера этого отчета в заголовки. И, наконец, заполните ячейки значениями, сверяясь с именем excel и номером отчета.

Я хочу спросить, Можно ли создать 3D-список? Я открою все отличия с помощью цикла foreach.
И сколько значений я могу добавить в массив? В этом проекте мне нужно минимум 10000.
Это хороший способ использовать 10000 значений в массиве ? Или это требует времени во время бега ?

Есть ли у вас какое - либо другое предложение по получению ценностей?

Спасибо.

Что я уже пробовал:

Просто ищу предложение.

1 Ответов

Рейтинг:
1

OriginalGriff

Вы, вероятно, не хотите создавать 3D-массив или список: выходные данные не являются "3D" из того, что вы показываете, поэтому, вероятно, вам просто нужен 2D-массив или (возможно, лучше) список списков (возможно, список словарей был бы лучше.)
Создайте заголовок "строка" отдельно - это "общий список" всех столбцов со всех листов - просто отметьте и добавьте к нему новые элементы.
Сами данные:

List<Dictionary<string, YourDataType>> sheets = new List<Dictionary<string, YourDataType>> ();
Для каждого листа создайте новый словарь:
Dictionary<string, YourDataType> sheet = new Dictionary<string, YourDataType>();

Добавьте к этому данные вашего листа (добавляя новые столбцы в заголовок по мере необходимости) и добавьте следующие данные: sheet к sheets коллекция.
Чтобы создать выходные данные, выполните итерацию через sheets и проверьте каждый заголовок: если он находится в sheet Дикция, используйте значение, в противном случае используйте "нет".

В этом есть смысл?


kozmikadam

Спасибо Вам за эту информацию! Вообще-то я никогда об этом не слышал. Сейчас я смотрю на некоторые образцы и пытаюсь понять, что вы говорите. Сейчас попробую вот это.