2013-03-12 11 views
13

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

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

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

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

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

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

ответ

27

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

$sheetCount = $excel->getSheetCount(); 

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

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

$sheetNames = $excel->getSheetNames(); 

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

Метод

$excel->getSheet() 

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

$excel->getSheetByName() 

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

+0

Я обновил свой вопрос с попыткой поймать. Это не то же самое, что 'getSheet', но похоже. –

+0

Это сработало бы, да .... Одна из замечательных особенностей библиотек с открытым исходным кодом заключается в том, что вы можете реально посмотреть на код и посмотреть, что он делает –

1

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

0

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

try { 
     $objWorksheet = $objPHPExcel->setActiveSheetIndex(1); 
} 
catch (Exception $e) { 
    echo 'Sheet is not exists!'; 
} 
Смежные вопросы