Функция _ExcelReadArray

         Описание функции


_ExcelReadArray

Получает в массив значения диапазона ячеек активного листа открытой рабочей книги Excel

#include <Excel.au3>
_ExcelReadArray($oExcel, $iStartRow, $iStartColumn, $iNumCells [, $iDirection = 0 [, $iIndexBase = 0]])

Параметры

$oExcel Ссылка на COM-объект "Excel.Application" полученная ранее вызванными _ExcelBookOpen(), _ExcelBookNew(), или _ExcelBookAttach()
$iStartRow Целевая строка
$iStartColumn Целевой столбец
$iNumCells Количество обрабатываемых ячеек
$iDirection [необязательный] Флаг, определяющий направление обработки ячеек относительно целевой (0=горизонтально(вправо), 1=вертикально(вниз))
$iIndexBase [необязательный] Нижняя граница индексов создаваемого массива (Option Base) = 0 или 1

Возвращаемое значение

Успех:Возвращает массив, содержащий полученные значения
Ошибка:Возвращает "0" , Устанавливает значение флага ошибки @error:
@error:0 - Скрипт завершил работу без ошибок
1 - Ошибка OLE/COM ($oExcel), возможно указанный объект не существует
2 - Значение параметра не является числом, или недопустимо
3 - Недопустимое значение параметра ($iNumCells)
4 - Недопустимое значение параметра ($iDirection)
@extended:0 - Ошибка в значении строки ($iStartRow)
1 - Ошибка в значении столбца ($iStartColumn)

Примечания

Внимание!!! документы разных форматов MS Office имеют различные ограничения по количеству столбцов и строк:
*.xls (формат xlExcel8, стандартный для MS Office 2003,97,95) имеет ограничения в 255 столбцов 65 535 строк
*.xlsx,*.xlsb,*.xlsm (XML-форматы MS Office 2007-2010) имеют ограничения в 16 384 столбца и 1 048 576 строк

Пример

; ***************************************************
; Пример 1 - Получает в массивы $aArray1 и $aArray2 значения диапазона ячеек активного листа открытой рабочей книги Excel
; ***************************************************

#include <Excel.au3>
#include <Array.au3>

Local $oExcel = _ExcelBookNew() ; Создаем новую рабочую книгу

For $i = 1 To 5
    _ExcelWriteCell($oExcel, $i, $i, 1) ; Записываем данные в ячейки с вертикальным смещением равным нарастанию счетчика - числа от 1 до 5
Next

For $i = 1 To 5
    _ExcelWriteCell($oExcel, Asc($i), 1, $i + 2) ; Записываем данные в ячейки с горизонтальным смещением равным нарастанию счетчика + 2, значение задается функцией Asc (возвращает ASCII код символа.)
Next

$aArray1 = _ExcelReadArray($oExcel, 1, 1, 5, 1) ; Этот метод при указанных параметрах, получает значения 5 ячеек в массив смещаясь вертикально(вниз) относительно целевых координат: строка=1,столбец=1
$aArray2 = _ExcelReadArray($oExcel, 1, 3, 5) ; Этот метод при указанных параметрах, получает значения 5 ячеек в массив смещаясь горизонтально(вправо) относительно целевых координат: строка=1,столбец=3
_ArrayDisplay($aArray2, "$aArray2...") ; Отображаем значения массива в окне сообщений
_ArrayDisplay($aArray1, "$aArray1...") ; Отображаем значения массива в окне сообщений

MsgBox(4096, "_ExcelReadArray | Пример 1", "Демонстрация завершена, нажмите ОК")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; Сохраняем файл в директории временных файлов, перезаписывая если необходимо.
_ExcelBookClose($oExcel) ; Закрываем рабочую книгу