_ExcelSheetList
Возвращает одномерный массив, содержащий количество и имена всех листов открытой рабочей книги Excel.
#include <Excel.au3>
_ExcelSheetList($oExcel)
Параметры
$oExcel | Ссылка на COM-объект "Excel.Application" полученная ранее вызванными _ExcelBookOpen(), _ExcelBookNew(), или _ExcelBookAttach() |
Возвращаемое значение
Успех: | Возвращает одномерный массив, содержащий количество и имена всех листов открытой рабочей книги Excel. |
Ошибка: | Возвращает 0, Устанавливает значение флага ошибки @error: |
@error: | 0 - Скрипт завершил работу без ошибок |
1 - Ошибка OLE/COM ($oExcel), возможно указанный объект не существует |
Примечания
Значению 0(нулевого)индекса возвращаемого массива соответствует количество листов в целевой рабочей книге, начиная с 1(первого) индекса и далее значения соответствуют именам листов, а сам индекс - их порядковому номеру в коллекции листов целевой рабочей книги.Пример
; *****************************************
; Пример 1 - Получает массив содержащий имена и количество листов в коллекции целевой рабочей книги Excel и отображает его
;******************************************
#include <Excel.au3>
#include <Array.au3>
Local $oExcel = _ExcelBookNew() ; Создаем новую рабочую книгу
$aArray = _ExcelSheetList($oExcel)
_ArrayDisplay($aArray, "Массив возвращаемый методом _ExcelSheetList")
MsgBox(4096, "_ExcelSheetList | Пример 1", "Демонстрация завершена, нажмите ОК")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; Сохраняем файл в директории временных файлов, перезаписывая если необходимо.
_ExcelBookClose($oExcel) ; Закрываем рабочую книгу
; ******************************************
; Пример 2 - Получает массив содержащий имена и количество листов в коллекции целевой рабочей книги Excel, и основываясь на полученных данных
; перебирает в ней листы используя полученное имя листа в методе активации листа _ExcelSheetActivate
; ******************************************
#include <Excel.au3>
Local $oExcel = _ExcelBookNew() ; Создаем новую рабочую книгу
$aArray = _ExcelSheetList($oExcel)
For $i = $aArray[0] To 1 Step -1 ; Инструкции цикла с убывающим счетчиком
_ExcelSheetActivate($oExcel, $aArray[$i]) ; Активируем лист основываясь на полученном имени
MsgBox(4096, "Активный лист", "Сейчас активен лист:" & @CRLF & $aArray[$i])
Next
MsgBox(4096, "_ExcelSheetList | Пример 2", "Демонстрация завершена, нажмите ОК")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; Сохраняем файл в директории временных файлов, перезаписывая если необходимо.
_ExcelBookClose($oExcel) ; Закрываем рабочую книгу
; ***********************************************************************************************************************************************
; Пример 3 - Получает массив содержащий имена и количество листов в коллекции целевой рабочей книги Excel, и основываясь на полученных данных
; перебирает в ней листы используя соответствие индекса полученного массива порядковому номеру листа в методе активации листа _ExcelSheetActivate
; ***********************************************************************************************************************************************
#include <Excel.au3>
Local $oExcel = _ExcelBookNew() ; Создаем новую рабочую книгу
$aArray = _ExcelSheetList($oExcel)
For $i = $aArray[0] To 1 Step -1 ; Инструкции цикла с убывающим счетчиком
_ExcelSheetActivate($oExcel, $i) ; Активируем лист основываясь соответствие индекса массива порядковому номеру листа в коллекции
MsgBox(4096, "Активный лист", "Сейчас активен лист №:" & @CRLF & $i)
Next
MsgBox(4096, "_ExcelSheetList | Пример 3", "Демонстрация завершена, нажмите ОК")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; Сохраняем файл в директории временных файлов, перезаписывая если необходимо.
_ExcelBookClose($oExcel) ; Закрываем рабочую книгу