プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHP、PHPExcelでシート数及びすべてのシート名を取得する
超お久しぶりなPHPExcelさんです。
ちょっくら複数シートのExcelさんを扱う機会がありましてね。
「全シートのシート名が欲しいな~」な状況になったのです。

と言う訳で調べてみたのですが、意外と情報が転がっていないのですね。
仕方ないのでライブラリの中身をちょろっと見ちゃったよ。

それではサンプルコードです。こんな感じφ(--)

<?php

    //PHPExcelをインクルード
    require_once(dirname(__FILE__) . '/Classes/PHPExcel.php');
    require_once(dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php');


    $filepath = "./test.xls";    //読み込みExcelファイルパス

    //Excel読み込み
    $objReader = PHPExcel_IOFactory::createReader('Excel5');
    $book = $objReader->load($filepath);

    //シート数取得
    $sheetsCount = $book->getSheetCount();


    for($i = 0; $i < $sheetsCount; $i++){
        //シート取得
        $book->setActiveSheetIndex($i);
        $sheet = $book->getActiveSheet();

        //シート名取得
        $sheetName = $sheet->getTitle();


        //シート名表示
        print "index" . $i . ":" . $sheetName . "<br>";
    }

?>

いらないだろうけど実行結果はこんな感じφ(--)

index0:Sheet1
index1:Sheet2
index2:Sheet3

コードを見れば分かるかもしれませんけど、一応解説しておきますね。

$sheetsCount = $book->getSheetCount();

でシート数を取得しています。
そしてシート数分だけループ(--)b
ループ内の

$book->setActiveSheetIndex($i);

でシートをズラしながら

$sheet = $book->getActiveSheet();

$sheetName = $sheet->getTitle();

でシート名を取得しています。
この部分は見やすくするために分けていますが、

$sheetName = $book->getActiveSheet()->getTitle();

のように1行で書いてもOKです。

そんな感じ(--)ノ
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:PHPExcel  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト