Я использую 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!'; }