_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 имеют различные ограничения по количеству столбцов и строк:Пример
; ***************************************************
; Пример 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) ; Закрываем рабочую книгу