_ExcelReadSheetToArray
Возвращает двумерный массив заполненный данными из указанного количества строк и столбцов активного листа открытой рабочей книги Excel
#include <Excel.au3>
_ExcelReadSheetToArray($oExcel [, $iStartRow = 1 [, $iStartColumn = 1 [, $iRowCnt = 0 [, $iColCnt = 0 [, $iColShift = False]]]]])
Параметры
$oExcel | Ссылка на COM-объект "Excel.Application" полученная ранее вызванными _ExcelBookOpen(), _ExcelBookNew(), или _ExcelBookAttach() |
$iStartRow |
[необязательный] Целевая строка, с которой начнется выборка данных в массив (по умолчанию = 1) |
$iStartColumn |
[необязательный] Целевой столбец, с которого начнется выборка данных в массив (по умолчанию = 1) |
$iRowCnt |
[необязательный] Количество вбираемых в возвращаемый массив строк вниз относительно целевой строки (по умолчанию = 0(все)) |
$iColCnt |
[необязательный] Количество вбираемых в возвращаемый массив столбцов вправо относительно целевой строки (по умолчанию = 0(все)) |
$iColShift |
[необязательный] Флаг, определяющий нижнюю границу индексов создаваемого массива (Option Base) (True = 0, False = 1) (по умолчанию = False) |
Возвращаемое значение
Успех: | Возвращает двухмерный массив заполненный данными из указанного количества строк и столбцов активного листа открытой рабочей книги Excel |
Ошибка: | Возвращает 0, Устанавливает значение флага ошибки @error: |
@error: | 0 - Скрипт завершил работу без ошибок |
1 - Ошибка OLE/COM ($oExcel), возможно указанный объект не существует | |
2 - Недопустимое значение параметра(ов) определяющих целевую строку/столбец ($iStartRow, $iStartColumn) | |
3 - Недопустимое значение параметра(ов) определяющих количество вбираемых в массив строк/столбцов ($iColCnt, $iRowCnt) | |
@extended: | 0 - Ошибка в значении строки |
1 - Ошибка в значении столбца |
Примечания
Для того чтобы индексы возвращаемого двухмерного массива соответствовали формату адресов ячеек R1C1(номер строки/номер столбца),Пример
; ***************************************
; Пример 1 - Возвращает двухмерный массив $aArray заполненный данными из активного листа открытой рабочей книги Excel, несколько комбинаций
; ***************************************
#include <Excel.au3>
#include <Array.au3>
Local $oExcel = _ExcelBookNew() ; Создаем новую рабочую книгу
; Циклически заполняем диапазон ячеек случайными числами
For $y = 1 To 10
For $x = 1 To 15
_ExcelWriteCell($oExcel, Round(Random(1000, 10000), 0), $x, $y) ; Записываем в ячейку целое случайное число из диапазона от 1000 до 10000
Next
Next
$aArray = _ExcelReadSheetToArray($oExcel)
_ArrayDisplay($aArray, "Использовались параметры 'по умолчанию'")
$aArray = _ExcelReadSheetToArray($oExcel, 2)
_ArrayDisplay($aArray, "Начиная со второй строки")
$aArray = _ExcelReadSheetToArray($oExcel, 1, 2)
_ArrayDisplay($aArray, "Начиная со второго столбца")
$aArray = _ExcelReadSheetToArray($oExcel, 1, 1, 5)
_ArrayDisplay($aArray, "Считывание 5 строк")
$aArray = _ExcelReadSheetToArray($oExcel, 1, 1, 0, 2)
_ArrayDisplay($aArray, "Считывание 2 столбцов")
$aArray = _ExcelReadSheetToArray($oExcel, 2, 3, 4, 5)
_ArrayDisplay($aArray, "Начинает считывание с 2 строки и 3 столбца, захватывает 4 строки и 5 столбцов")
$aArray = _ExcelReadSheetToArray($oExcel, 1, 1, 0, 0, True) ; Нижняя граница индексов создаваемого массива (Option Base) выбрана равной 0 (True)
_ArrayDisplay($aArray, "Индексы массива не совпадают с адресами R1C1 из-за Option Base = 0")
MsgBox(4096, "_ExcelReadSheetToArray | Пример 1", "Демонстрация завершена, нажмите ОК")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; Сохраняем файл в директории временных файлов, перезаписывая если необходимо.
_ExcelBookClose($oExcel) ; Закрываем рабочую книгу