ホーム > getCellByColumnAndRow (全3件)
  • 日付セルの値を取得する

    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メソッドで値を取得する。

  • セルに文字列として値を設定する

    $columnと$rowで指定したセルに文字列として値を設定する

    $sheet->getCellByColumnAndRow( $column, $row )->setValueExplicit( $val, PHPExcel_Cell_DataType::TYPE_STRING );
    

    getCellByColumnAndRowメソッドでセルオブジェクトを取得し、そのsetValueExplicitメソッドで値とデータ型を設定する。なお変数$sheetは、getActiveSheetメソッドで取得したシートオブジェクトである。