ホーム > getValue (全3件)
  • セルがリッチテキストの場合はそのプレーンテキストを取得する

    セルB1の値がリッチテキストの場合にそのプレーンテキストを取得する

    $val = $sheet->getCell( 'B1' )->getValue();
    if ( $val instanceof PHPExcel_RichText )
    	$val = $val->getPlainText();
    

    getValueメソッドで取得した値が文字列ではなくPHPExcel_RichTextクラスのオブジェクトの場合がある。この場合はgetPlainTextメソッドを使用することでプレーンテキストを取得する。文章(文字列)が入るセルの値を取得する場合は注意したい。

  • 日付セルの値を取得する

    2列目のセルの値を日付書式で取得する。

    // getFormattedValueメソッドを使用する場合
    for ( $row = 1; $row <= 10; $row++ ) {
    	$date_val = $sheet->getCellByColumnAndRow( 1, $row )->getFormattedValue();
    	if ( preg_match( '/^[0-9]{2}\-[0-9]{2}\-[0-9]{2}$/', $date_val ) )
    		$date_val = DateTime::createFromFormat( 'm-d-y', $date_val )->format( 'Y/m/d' );
    }
    
    // getValueメソッドを使用する場合
    $date_val = $sheet->getCellByColumnAndRow( 0, $row )->getValue();
    if ( $date_val != '' ) {
    	$date_val = PHPExcel_Style_NumberFormat::toFormattedString( $date_val, PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2 );
    

    日付セルの値をgetValueメソッドで取得すると「1900/1/1」からの経過日数となる。PHPExcel_Style_NumberFormat::toFormattedStringメソッドや自前で変換する方法もあるが、getFormattedValueメソッドを使うことで’m-d-y’書式の文字列(例:2010年5月21日なら’05-21-10’)が取得できる。上記の例では取得した値の書式を確認し、DateTimeクラスのcreateFromFormatメソッドを使ってパースし、書式を’Y/m/d’に変換している。

  • セルの値を取得する

    セルB1の値を取得する

    $val = $sheet->getCell( 'B1' )->getValue();
    
    /* カラム番号と行番号を指定する場合
    $val = $sheet->getCellByColumnAndRow( 1, 1 )->getValue();
    

    getCellメソッドにセル名を指定するか、getCellByColumnAndRowメソッドでカラム番号、行番号を指定することで、セルオブジェクトが取得できる。そのセルオブジェクトのgetValueメソッドで値を取得する。