Описание #
Класс RowReader используется для построчного чтения данных из:
- текстовых csv-файлов.;
- файлов в форматах Office Open XML xlsx-файлов;
- активной рабочей книги, открытой в пользовательском интерфейсе приложения almaGRID.
Для создания экземпляра класса RowReader используйте app.NewReader.
Свойства #
EndOfData #
Описание
В текущей строке отсутствуют данные.
EndOfData ( [Detection String = '' ], [ColumnOffset Integer = 0 ] ) : Boolean
Значение свойства (ReadOnly)
Тип: Boolean
True - если в текущей строке отсутствуют данные; False - в противном случае.
Параметры
Detection | String | Необязательный параметр. Значение по умолчанию '' . См. описание параметра в FrameReader.EndOfData
|
ColumnOffset | Integer | Необязательный параметр. Значение по умолчанию 0 . См. описание параметра в FrameReader.EndOfData
|
VBScript
if rd.EndOfData then '..... End If
EndOfRow #
Описание
В текущей позиции чтения данных отсутствуют данные.
EndOfRow ( [Detection String = '' ] ) : Boolean
Значение свойства (ReadOnly)
Тип: Boolean
True - если в текущей позиции отсутствуют данные, False - в противном случае.
Параметры
Detection | String | Необязательный параметр. Значение по умолчанию '' . См. описание параметра в FrameReader.EndOfData
|
VBScript
if rd.EndOfRow then '..... End If
RangeFields #
Описание
Массив названий и типов полей, используемых при чтении диапазона RowReader.ReadRange (см. параметр 'RangeFields' в app.NewReader).
RangeFields : Array
Значение свойства
Тип: Array
Массив названий и типов полей (см. параметр 'RangeFields' в app.NewReader).
VBScript
'будет выведен второй элемент массива, возвращемого свойством ag.app.MsgBox rd.RangeFields()(1)
Sheet #
Описание
Имя или номер листа многостраничного источника данных (см. параметр 'Sheet' в app.NewReader).
Sheet : Variant
Значение свойства
Тип: Variant
Если источник данных является многостраничным, то при присвоении изменяет текущий лист, а также устанавливает фрейм и текущий указатель на первую строку левый столбец выбранного листа.
VBScript
rd.Sheet = "Лист2"
Методы #
Close #
Описание
Закрывает источник данных связанный с файлом, указанным в app.NewReader и освобождает используемую память.
Можно закрыть только ридер, созданный с помощью app.NewReader.
При попытке закрыть дополнительный ридер FrameReader.AuxReader ничего не произойдет.
Close
VBScript
rd.Close
NextColumn #
Описание
Делает текущим следующее в этой же строке значение или, если указан ColumnsToSkip, значение, смещенное на ColumnsToSkip.
NextColumn ( [ColumnsToSkip Integer = 1 ] )
Параметры
ColumnsToSkip | Integer | Необязательный параметр. Значение по умолчанию 1 . Количество столбцов, на которое происходит смещение текущей позиции чтения данных.
|
VBScript
rd.NextColumn rd.NextColumn 3
NextRow #
Описание
Делает текущим первое значение в следующей строке или, если указан RowsToSkip, то строки, смещенной на RowsToSkip.
NextRow ( [RowsToSkip Integer = 1 ] )
Параметры
RowsToSkip | Integer | Необязательный параметр. Значение по умолчанию 1 . Количество строк, на которое происходит смещение текущей позиции чтения данных.
|
VBScript
rd.NextRow rd.NextRow -5
Read #
Описание
Читает текущее значение. Сдвигает текущую позицию чтения данных на значение в этой же строке, в следующем столбце.
Read ( [ValueType String = 'String' ] ) : Variant
Возвращаемое значение
Тип: Variant
Значение из текущей позиции чтения данных или null, если значение не удалось привести к заданному типу.
Параметры
ValueType | String | Необязательный параметр. Значение по умолчанию 'String' . Тип, к которому будет приведено прочитанное значение, см. app.NewReader.
|
VBScript
a = rd2.ReadRange("Double") a = rd2.ReadRange
ReadArray #
Описание
Читает диапазон полей текущей строки начиная с текущей позиции чтения данных. Сдвигает текущую позицию чтения данных на количество значений, описанных в диапазоне.
ReadArray : Array
Возвращаемое значение
Тип: Array
Массив значений полей (первый индекс-0) или null, если значение не удалось привести к заданному типу.
VBScript
arr = rd.ReadArray
ReadArrayLn #
Описание
Читает диапазон полей текущей строки начиная с текущей позиции чтения данных. Сдвигает текущую позицию чтения данных на количество значений, описанных в диапазоне.
ReadArrayLn : Array
Возвращаемое значение
Тип: Array
Массив значений полей (первый индекс-0) или null, если значение не удалось привести к заданному типу.
VBScript
arr = rd.ReadArray
ReadRange #
Описание
Читает диапазон полей текущей строки начиная с текущей позиции чтения данных. Сдвигает текущую позицию чтения данных на первый столбец следующей строки.
ReadRange : Dictionary
Возвращаемое значение
Тип: Dictionary
Набор пар 'НазваниеПоля'-'Значение' или null, если значение не удалось привести к заданному типу.
Комментарии
Если обрабатываются большие массивы информации, то рекомендуется использовать более быстрый метод ReadArray.
VBScript
Set rd2 = ag.app.NewReader("RowReader", _ ag.database.FolderPath & "Книга1.xlsx", "Лист3", _ Array(2, "Количество, шт.<Integer>", 3, "Пробег, км<Double>")) Do While Not rd2.EndOfData Set d = rd2.ReadRange if d("Количество, шт.") > 25 then '...... end if rd2.NextRow Loop rd2.Close
ReadRangeLn #
Описание
Читает диапазон полей текущей строки начиная с текущей позиции чтения данных. Сдвигает текущую позицию чтения данных на первый столбец следующей строки.
ReadRangeLn : Dictionary
Возвращаемое значение
Тип: Dictionary
Набор пар 'НазваниеПоля'-'Значение' или null, если значение не удалось привести к заданному типу.
Комментарии
Если обрабатываются большие массивы информации, то рекомендуется использовать более быстрый метод ReadArrayLn}.
VBScript
Set rd2 = ag.app.NewReader("RowReader", _ ag.database.FolderPath & "Файл1.csv", "", _ Array(2, "Количество, шт.<Integer>", 3, "Пробег, км<Double>")) Do While Not rd2.EndOfData Set d = rd2.ReadRangeLn '...... Loop rd2.Close
Примеры #
Пример RowReader #
VBScript
'Чтение XLSX-файла Set rd2 = ag.app.NewReader("RowReader", _ ag.database.FolderPath & "Книга1.xlsx", "Лист2", _ Array(2, "Вагонетка<String>", 1, "Пробег, км<Double>")) ''Чтение CSV-файла 'Set rd2 = ag.app.NewReader("RowReader", _ ' ag.database.FolderPath & "Книга1-2.csv", "", _ ' Array(2, "Вагонетка<String>", 1, "Пробег, км<Double>"), "<prm csvDelimiter=','/>") ''Чтение листа текущей рабочей книги пользовательского интерфейса 'Set rd2 = ag.app.NewReader("RowReader", _ ' "", "Лист2", _ ' Array(2, "Вагонетка<String>", 1, "Пробег, км<Double>")) rd2.NextRow 1 Set Data = ag.app.NewObject("HashTable") Do While Not rd2.EndOfData Set record = rd2.ReadRangeLn Data.Add record("Вагонетка"), record("Пробег, км") Loop ag.app.MsgBox ag.app.Stringify(Data) rd2.Close 'Таблица - верхний левый угол - ячейка A1: 'Отдел Количество, шт. Вагонетка Дата Пробег, км 'Отдел1 23 Вагонетка24 25.02.2022 76,8 'Отдел2 27 Вагонетка45 24.04.2022 73,1 'Результат: '{ ' "Вагонетка45": 73.1, ' "Вагонетка24": 76.8 '}