ホーム > セル (全19件)
  • セルのスタイルをコピペする

    セルB2のスタイルをセルB5に貼り付ける。

    /* セルB5に貼り付ける */
    $sheet->duplicateStyle( $sheet->getStyle( 'B2' ), 'B5' );
    
    /* セルB5~C8に貼り付ける */
    $sheet->duplicateStyle( $sheet->getStyle( 'B2' ), 'B5:C8' );
    

    getStyleメソッドでスタイル(PHPExcel_Styleオブジェクト)を取得し、duplicateStyleメソッドでスタイルを貼り付ける。duplicateStyleメソッドで指定するセルは範囲指定できる。

  • 範囲指定したセルの値をまとめて取得する

    セルB1~C5の範囲の値を取得する

    $val = $sheet->rangeToArray( 'B1:C5' );
    
    // セルB2の値
    $val_b2 = $val[1][0];
    

    rangeToArrayメソッドに取得した範囲指定名を指定する。$valは行と列をキーとした2次元配列となり、この例であればセルB1の値が$val[0][0]に、セルC5の値が$val[4][1]に格納されている。

  • セルの値を取得する

    セルB1の値を取得する

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

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

  • カラムの幅設定を自動調整する

    Aカラムの幅設定を自動調整する

    /* Aカラムを指定 */
    $sheet->getColumnDimension( 'A' )->setAutoSize( true );
    
    /* カラム番号変数を指定 */
    $sheet->getColumnDimension( PHPExcel_Cell::stringFromColumnIndex( $column ) )->setAutoSize( true );
    

    呼び出し時のセルの状態(データの有無)、フォント設定が影響する。日本語を扱う場合は事前に適切な日本語フォントとサイズを指定しておくこと(それでも可変幅(プロポーショナル)フォントで日本語文字列のカラム幅は狭くなる場合がある。その場合は、固定幅フォントを設定するなどの工夫が必要)。

  • セルのフォントサイズを設定する

    A1セルのフォントサイズを9(ポイント)に設定する

    /* 9ポイントを設定する */
    $sheet->getStyle( 'A1' )->getFont()->setSize( 9 );
    
    /* パラメータを省略すると10ポイントになる */
    $sheet->getStyle( 'A1' )->getFont()->setSize();
    

    getStyleメソッドでスタイルオブジェクト(PHPExcel_Style)を取得し、さらにgetFontメソッドでフォントオブジェクト(PHPExcel_Style_Font)を取得。setSizeメソッドでパラメータに希望するフォントサイズを指定する。なおパラメータを省略または”を指定した場合は、デフォルト値の10が設定される。

  • セルの表示形式を変更する

    カラム’A1’の表示形式に’#,##0’を設定する

    /* A1形式でセルを指定する場合 */
    $sheet->getStyle( 'A1' )->getNumberFormat()->setFormatCode( '#,##0' );
    
    /* カラム番号と行番号でセルを指定する場合 */
    $sheet->getStyleByColumnAndRow( $column, $row )->getNumberFormat()->setFormatCode( '#,##0' );
    

    セルの書式設定(オブジェクト)をgetStyleメソッド(またはgetStyleByColumnAndRowメソッド)で取得し、そのgetNumberFormatメソッドで表示形式(オブジェクト)を取得。setFormatCodeメソッドで表示形式を設定する。指定できる表示形式はExcelと同じで、%表示にする場合は’0.00%’のように「0.」の後に小数点有効桁数分「0」を指定し最後に「%」を付ける。なお登録済みの表示形式は、PHPExcel_Style_NumberFormatクラスを参照。

  • カラム番号をカラムラベルに変換する

    カラム番号$columniをカラムラベル(’A’、’B’…)に変換する

    /* 1 -> 'A' */
    $columna = PHPExcel_Cell::stringFromColumnIndex( $columni );
    
    /* 'A' -> 1 */
    $columni = PHPExcel_Cell::columnIndexFromString( $columna );
    

    計算式の引数を組み立てる際に使用すると便利かも。

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

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

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

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

  • セルに値を設定する

    セルに値を設定する

    // セルA1に変数$val1の値を設定する
    $sheet->setCellValue( 'A1', $val1 );
    
    // セルA1に変数$val1の値を設定する
    $sheet->setCellValueByColumnAndRow( 0, 1, $val1 );
    

    セルに値を設定するメソッドは、setCellValueメソッドでA1形式を指定して取得するか、setCellValueByColumnAndRowメソッドでカラム番号(0~)と行番号(1~)を指定して取得する。なお変数$sheetは、getActiveSheetメソッドで取得したシートオブジェクトである。