2013.
09.
25
07:03:54
超お久しぶりなPHPExcelさんです。
ちょっくら複数シートのExcelさんを扱う機会がありましてね。
「全シートのシート名が欲しいな~」な状況になったのです。
と言う訳で調べてみたのですが、意外と情報が転がっていないのですね。
仕方ないのでライブラリの中身をちょろっと見ちゃったよ。
それではサンプルコードです。こんな感じφ(--)
いらないだろうけど実行結果はこんな感じφ(--)
コードを見れば分かるかもしれませんけど、一応解説しておきますね。
でシート数を取得しています。
そしてシート数分だけループ(--)b
ループ内の
でシートをズラしながら
でシート名を取得しています。
この部分は見やすくするために分けていますが、
のように1行で書いてもOKです。
そんな感じ(--)ノ
ちょっくら複数シートの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>";
}
?>
//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
index1:Sheet2
index2:Sheet3
コードを見れば分かるかもしれませんけど、一応解説しておきますね。
$sheetsCount = $book->getSheetCount();
でシート数を取得しています。
そしてシート数分だけループ(--)b
ループ内の
$book->setActiveSheetIndex($i);
でシートをズラしながら
$sheet = $book->getActiveSheet();
$sheetName = $sheet->getTitle();
$sheetName = $sheet->getTitle();
でシート名を取得しています。
この部分は見やすくするために分けていますが、
$sheetName = $book->getActiveSheet()->getTitle();
のように1行で書いてもOKです。
そんな感じ(--)ノ