Чтение диапазона
Элемент считывает данные из диапазона ячеек листа книги Excel и сохраняет их в переменную типа DataTable. Для корректной работы следует поместить элемент в контейнер Microsoft 365.
Свойства
Описание общих свойств элемента см. в разделе Свойства элемента .
Символ * в названии свойства указывает на обязательность его заполнения.
| Свойство | Тип | Описание |
|---|---|---|
| Параметры: | ||
| Лист* | String | Имя листа. По умолчанию "Sheet1" |
| Книга* | DriveItem | Книга Excel. См. Общие свойства элементов |
| Диапазон | String | Адрес диапазона, например "A1:D100". Если не заполнено — вся заполненная область листа |
| Тип значения | - | Что считывать из ячеек. Доступные значения: Values — значения, Formulas — формулы (для ячеек без формулы — значение), Text — текст в том виде, как он отображается в Excel, с учетом форматирования. По умолчанию Values |
| Заголовки | Boolean | Если включено — первая строка диапазона используется как имена столбцов DataTable и не входит в данные. Если выключено — столбцы получают имена Column1, Column2 и т. д. По умолчанию выключено |
| Результат: | ||
| Результат | DataTable | Переменная для сохранения прочитанных данных |
Примечание: Все столбцы результата имеют тип String. В режиме Values числа возвращаются с точкой в качестве разделителя (12.5), даты — порядковым номером даты Excel (46289). Чтобы получить значения в том виде, как они отображаются в Excel (12,50, 24.09.2026), используйте режим Text.
Важно: При включенном свойстве Заголовки имена в первой строке диапазона должны быть уникальными.
Практические примеры
Пример 1: чтение таблицы с заголовками
- Лист:
"Лист1" - Книга:
book - Заголовки: включено
- Результат:
data
Значение столбца «Сумма» первой строки — data.Rows[0]["Сумма"], количество строк — data.Rows.Count.
Пример 2: чтение фиксированного диапазона в отображаемом виде
- Лист:
"Реестр" - Книга:
book - Диапазон:
"A2:F50" - Тип значения:
Text - Результат:
data
Пример 3: преобразование значений
Число из режима Values:
double sum = double.Parse(data.Rows[0]["Сумма"].ToString(), System.Globalization.CultureInfo.InvariantCulture);Дата из режима Values:
DateTime date = DateTime.FromOADate(double.Parse(data.Rows[0]["Дата"].ToString(), System.Globalization.CultureInfo.InvariantCulture));Возможные ошибки
| Ошибка | Причина и решение |
|---|---|
Не указана книга / Не указан лист | Не заполнены обязательные свойства |
Sequence contains no elements | Лист с указанным именем не найден. Проверьте имя листа ("Лист1" / "Sheet1") |
A column named '...' already belongs to this DataTable | При включенных Заголовках в первой строке есть повторяющиеся имена |
InvalidArgument | Неверный адрес диапазона |