プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHP、PHPExcelでExcel読み込み
PHP、PHPExcelでExcel出力(テンプレート読み込み)」で
ちょっとフライングしてしまいましたが、
今度はExcel読み込みのお話です。
と言う訳でサンプルφ(--)

  <?php
      //ライブラリ読み込み
      require_once './Classes/PHPExcel.php';
      require_once './Classes/PHPExcel/IOFactory.php';
  

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

  
      //シート設定
      $book->setActiveSheetIndex(0);
      $sheet = $book->getActiveSheet();
  
      // セルから値を取得
      for($i = 0; $i < 5; $i++){
          for($j = 1; $j < 5; $j++){

              $objCell = $sheet->getCellByColumnAndRow($i, $j); //col,rowの並び
              $str = _getText($objCell);

              print "$i - $j : $str<br />\n";
          }
      }
  

      /**
       * 指定したセルの文字列を取得する
       *
       * 色づけされたセルなどは cell->getValue()で文字列のみが取得できない
       * また、複数の配列に文字列データが分割されてしまうので、その部分も連結して返す
       *
       *
       * @param $objCell Cellオブジェクト
       */
      function _getText($objCell = null)
      {
          if (is_null($objCell)) {
              return false;
          }
          $txtCell = "";
          //まずはgetValue()を実行
          $valueCell = $objCell->getValue();
          if (is_object($valueCell)) {
              //オブジェクトが返ってきたら、リッチテキスト要素を取得
              $rtfCell = $valueCell->getRichTextElements();
              //配列で返ってくるので、そこからさらに文字列を抽出
              $txtParts = array();
              foreach ($rtfCell as $v) {
                  $txtParts[] = $v->getText();
              }
              //連結する
              $txtCell = implode("", $txtParts);
          } else {
              if (!empty($valueCell)) {
                  $txtCell = $valueCell;
              }
          }
          return $txtCell;
      }

  ?>

Excel読み込んでA1からE4までを表示するサンプルです。
「_getText()」に関してはこちらの記事を丸パクr・・参考にさせていただきました。
書式設定されたセルの文字列は、getValue()メソッドでは上手く取得できないのだそーな。


スポンサーリンク
 
このエントリーをはてなブックマークに追加 

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

  関連記事