web-dev-qa-db-ja.com

PHPExcel 1つのセル値のみを取得する方法は?

特定の値を簡単に選択するために、getCell($X, $y)またはgetCellValue($X, $y)が利用できると思います。これは、大規模なプロセスの前にデータをクロスチェックする例として有用です。

Say cell Cから特定の値を取得するにはどうすればよいですか。

値の配列をソートしたくありません。

15
CrandellWS

開発者向けドキュメントのセクション4.5.2

座標によるセルの取得

セルの値を取得するには、最初にgetCellメソッドを使用してワークシートからセルを取得する必要があります。セルの値は、次のコード行を使用して再度読み取ることができます。

$objPHPExcel->getActiveSheet()->getCell('B8')->getValue();

開発者向けドキュメントのセクション4.5.4

列と行でセルを取得する

セルの値を取得するには、最初にgetCellByColumnAndRowメソッドを使用してワークシートからセルを取得する必要があります。セルの値は、次のコード行を使用して再度読み取ることができます。

// Get cell B8
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow(1, 8)->getValue();

セルの計算値が必要な場合は、次のコードを使用します。これは4.4.35でさらに説明されています

// Get cell B8
$objPHPExcel->getActiveSheet()->getCellByColumnAndRow(1, 8)->getCalculatedValue();
50
Mark Baker

最も単純な-そして、通常のExcel座標を使用します。

// Assuming $sheet is a PHPExcel_Worksheet

$value = $sheet->getCell( 'A1' )->getValue();

必要に応じて、関数内で座標を分離できます。

function getCell( PHPExcel_Worksheet $sheet, /* string */ $x = 'A', /* int */ $y = 1 ) {

    return $sheet->getCell( $x . $y );

}

// eg:
getCell( $sheet, 'B', 2 )->getValue();
8
Brian North

これはソースベースの回答であり、自由に改善またはコメントしてください。

function toNumber($dest)
{
    if ($dest)
        return ord(strtolower($dest)) - 96;
    else
        return 0;
}

function myFunction($s,$x,$y){
 $x = toNumber($x);
 return $s->getCellByColumnAndRow($x, $y)->getFormattedValue();
}


$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);
$objPHPExcel->setActiveSheetIndex(0);
$sheetData = $objPHPExcel->getActiveSheet();


$cellData = myFunction($sheetData,'B','2');
var_dump($cellData);

これは文字Zを超えては機能せず、改善される可能性がありますが、私のニーズには合っています。

1
CrandellWS