2013-03-12 166 views
13

我正在使用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); 
} 

回答

27

如果你只是想知道是否sheetexists在索引1,然后

$sheetCount = $excel->getSheetCount(); 

将返回工作表的计数。由于工作表是从0开始递增索引的,因此索引1处的工作表仅在计数为2或更多时才存在。

如果你想知道一个叫表是否存在,然后

$sheetNames = $excel->getSheetNames(); 

将返回表名称的数组(通过其索引位置索引),然后你可以测试使用in_array();

$excel->getSheet() 

方法将抛出异常,如果所请求的片材(由指数)不存在,因此它包装在一个try/catch块将是另一种方法中

$excel->getSheetByName() 

如果指定的工作表不存在,则返回NULL值

+0

我更新了我的一个尝试捕捉问题。它与'getSheet'不同,但它是相似的。 – 2013-03-12 15:56:11

+0

它会工作,是的......关于开源库的一个伟大的事情是,你可以真正看代码,看看它自己做了什么 – 2013-03-12 15:59:41

1

getSheet($sheetNumber)是您如何检查工作表是否存在。

0

是你的代码也将工作:

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