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


_ExcelWriteArray

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

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

Параметры

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

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

Успех:Возвращает 1
Ошибка:Возвращает 0, Устанавливает значение флага ошибки @error:
@error:0 - Скрипт завершил работу без ошибок
1 - Ошибка OLE/COM ($oExcel), возможно указанный объект не существует
2 - Недопустимое значение параметра (см.@extended)
3 - Целевой массив не существует, или не является массивом.
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 - Записывает значения массива в ячейки активного листа открытой рабочей книги Excel
; ***************************************************************

#include <Excel.au3>

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

;Объявление массива
Local $aArray[5] = ["январь", "февраль", "март", "апрель", "май"] ; Заполняем массив названиями месяцев

_ExcelWriteArray($oExcel, 1, 1, $aArray) ; Записываем содержимое массива в ячейки листа - в горизонтальном направлении(вправо)
_ExcelWriteArray($oExcel, 1, 1, $aArray, 1) ; Записываем содержимое массива в ячейки листа - в вертикальном направлении(вниз), значение "A1" перезаписывается

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