2013-03-12 12 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

あなたは、単にインデックス1のsheetexistsかどうかを知りたい場合は、

$sheetCount = $excel->getSheetCount(); 

は、ワークシートの数を返します。シートは0からインクリメンタルにインデックス付けされるので、インデックス1のシートは、カウントが2以上の場合にのみ存在します。その後、

という名前のシートが存在するかどうかを知りたい場合は、)(

$sheetNames = $excel->getSheetNames(); 

は(彼らのインデックス位置をインデックス)シート名の配列を返します、あなたはその後、in_array使用してテストすることができます。

方法は、(インデックスで)要求されたシートが存在しない場合に例外をスローするので、try/catchブロックでラップします

$excel->getSheet() 

は別のアプローチだろう

$excel->getSheetByName() 

名前付きワークシートが存在しない場合はNULL値を返します

+0

私はトライキャッチで私の質問を更新しました。それは 'getSheet'と同じではありませんが、似ています。 –

+0

これはうまくいく、はい....オープンソースライブラリの素晴らしい点の1つは、実際にコードを見て、自分が何をしているのか見ることができることです –

1

getSheet($sheetNumber)は、シートが存在するかどうかをチェックする方法です。

0

はい、あなたのコードは動作します:

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