PHPExcel检查表是否存在

时间:2013-03-12 15:40:59

标签: php 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);
}

6 个答案:

答案 0 :(得分:29)

如果您只是想知道索引为1的sheetexists,那么

$sheetCount = $excel->getSheetCount();

将返回工作表的计数。由于工作表从0开始逐步编制索引,因此如果计数为2或更多,则索引1处的工作表将仅存在。

如果您想知道命名表是否存在,那么

$sheetNames = $excel->getSheetNames();

将返回一个工作表名称数组(按其索引位置编制索引),然后您可以使用in_array()进行测试;

$excel->getSheet()
如果请求的表(通过索引)不存在,

方法将抛出异常,因此将其包装在try / catch块中将是另一种方法

$excel->getSheetByName()
如果指定的工作表不存在,

返回NULL值

答案 1 :(得分:3)

您可以使用方法sheetNameExists($pSheetName)按名称检查工作表是否存在。

答案 2 :(得分:1)

getSheet($sheetNumber)是您检查工作表是否存在的方式。

答案 3 :(得分:0)

是的,您的代码也可以使用:

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

答案 4 :(得分:0)

$sheet=$excel->getSheet(1);
// or you can get sheet by name $sheet=$excel->getSheetByName("Sheet1");
if(!empty($sheet)&&is_object($sheet)){
      //sheet already exist
}else{
      //sheet does not exist. Write your code here!
}

答案 5 :(得分:0)

“知道当前的活动表编号(索引)” $ this-> activeSheet-> getActiveSheetIndex()

注意: $ loadExcel = PHPExcel_IOFactory :: load(“ excelSheetName.xlsx”); $ this-> activeSheet = $ loadExcel;