Функция _ExcelReadCell

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


_ExcelReadCell

Возвращает значение целевой ячейки активного рабочего листа открытой рабочей книги Excel.

#include <Excel.au3>
_ExcelReadCell($oExcel, $sRangeOrRow [, $iColumn = 1])

Параметры

$oExcel Ссылка на COM-объект "Excel.Application" полученная ранее вызванными _ExcelBookOpen(), _ExcelBookNew(), или _ExcelBookAttach()
$sRangeOrRow Адрес ячейки в формате A1, или номер целевой строки - в случае если адрес целевой ячейки указывается в формате R1C1(номер строки\номер столбца)
$iColumn [необязательный] Номер столбца, если адрес целевой ячейки указывается в формате R1C1(номер строки\номер столбца) (по умолчанию = 1)

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

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

Примечания

Эта функция возвращает значение одной ячейки за один вызов.
Получить значения из диапазона ячеек можно при помощи _ExcelReadArray
-------------------------------------------------------------------------
Внимание!!! документы разных форматов 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 строк

См. также

_ExcelReadArray

Пример

; **************************************************
; Пример 1 - Считывает значения из целевой ячейки активного листа открытой рабочей книги Excel
; **************************************************
#include <Excel.au3>

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

_ExcelWriteCell($oExcel, "Строка записана скриптом AutoIt", 1, 1) ; Записываем данные в ячейку
$sCellValue = _ExcelReadCell($oExcel, 1, 1) ; Читаем данные из ячейки
MsgBox(4096, "", "Значение ячейки: " & @CRLF & '"' & $sCellValue & '"')

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

; ****************************************************
; Пример 2 - Считывает значения из нескольких целевых ячеек активного листа открытой рабочей книги Excel
; ****************************************************

#include <Excel.au3>

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

For $i = 1 To 5
    _ExcelWriteCell($oExcel, $i, $i, 1) ; Записываем данные в ячейку
Next

;Циклически используем метод _ExcelReadCell, и отображаем в окне возвращаемое им значение на каждом шаге цикла
For $i = 1 To 5
    $sCellValue = _ExcelReadCell($oExcel, $i, 1)
    MsgBox(4096, "", "Значение ячейки " & "A" & $i & ":" & @CRLF & $sCellValue, 2)
Next

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