14

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);
}
4

6 に答える 6

33

シートがインデックス1に存在するかどうかを単に知りたい場合は、

$sheetCount = $excel->getSheetCount();

ワークシートの数を返します。シートには0から段階的にインデックスが付けられるため、インデックス1のシートは、カウントが2以上の場合にのみ存在します。

名前付きシートが存在するかどうかを知りたい場合は、

$sheetNames = $excel->getSheetNames();

シート名の配列(インデックス位置でインデックス付けされたもの)を返し、in_array()を使用してテストできます。

The

$excel->getSheet()

要求されたシート(インデックス別)が存在しない場合、メソッドは例外をスローするため、try/catchブロックでラップすることは別のアプローチになります

$excel->getSheetByName()

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

于 2013-03-12T15:47:51.657 に答える
3

シートが名前で存在するかどうかは、メソッドsheetNameExists($ pSheetName)を使用して確認できます。

于 2013-03-12T15:48:36.287 に答える
1

getSheet($sheetNumber)シートが存在するかどうかを確認する方法です。

于 2013-03-12T15:45:22.010 に答える
0

はい、コードも機能します。

try {
        $objWorksheet =  $objPHPExcel->setActiveSheetIndex(1); 
}
catch (Exception $e) {
    echo 'Sheet is not exists!';
}
于 2014-12-23T20:27:20.203 に答える
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!
}
于 2019-06-26T08:38:16.570 に答える
0

"現在のアクティブシート番号(インデックス)を知るには" $ this-> activeSheet-> getActiveSheetIndex()

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

于 2020-03-09T05:46:34.560 に答える