PHPExcel Проверьте, существует ли листинг

Я использую phpExcel, и я не могу найти что-либо, чтобы проверить, существует ли лист. То, что я хотел бы сделать, это примерно так:

if(!$excel->sheetExists(1)){ $excel->createSheet(1); $sheet = $excel->setSheet(1); } // Do some stuff with the sheet 

Так. Мой вопрос: как проверить, существует ли лист?

редактировать

Будет ли это работать?

 try{ $sheet = $this->excel->setActiveSheetIndex(1); }catch(Exception $e){ $excel->createSheet(1); $sheet = $excel->setActiveSheetIndex(1); } - try{ $sheet = $this->excel->setActiveSheetIndex(1); }catch(Exception $e){ $excel->createSheet(1); $sheet = $excel->setActiveSheetIndex(1); } 

Если вы просто хотите узнать, имеет ли лист в индексе 1, то

 $sheetCount = $excel->getSheetCount(); 

вернет счет рабочих листов. Поскольку индексы индексируются индексом от 0, тогда лист с индексом 1 будет существовать только в том случае, если счетчик равен 2 или более.

Если вы хотите знать, существует ли именованный лист, то

 $sheetNames = $excel->getSheetNames(); 

вернет массив имен листов (индексируется по их позиции индекса), а затем вы можете проверить с помощью in_array ();

 $excel->getSheet() 

метод будет генерировать исключение, если запрошенный лист (по индексу) не существует, поэтому перенос его в блок try / catch будет другим подходом

 $excel->getSheetByName() 

возвращает значение NULL, если именованный лист не существует

Вы можете проверить, существует ли лист по имени с помощью метода sheetNameExists ($ pSheetName) .

getSheet($sheetNumber) – это то, как вы проверяете, существует ли лист.

Да, ваш код также будет работать:

 try { $objWorksheet = $objPHPExcel->setActiveSheetIndex(1); } catch (Exception $e) { echo 'Sheet is not exists!'; }