web-dev-qa-db-fra.com

PHPExcel Comment obtenir une seule valeur de cellule?

Je penserais qu'une getCell($X, $y) ou getCellValue($X, $y) serait disponible pour que l'on puisse facilement choisir une certaine valeur. Cela peut être utile, comme exemple de recoupement de données avant un processus plus important.

Comment obtenez-vous une valeur spécifique de disons cellule C.

Je ne veux pas qu'un tableau de valeurs soit trié.

15
CrandellWS

Section 4.5.2 de la documentation du développeur

Récupération d'une cellule par coordonnées

Pour récupérer la valeur d'une cellule, la cellule doit d'abord être extraite de la feuille de calcul à l'aide de la méthode getCell. La valeur d'une cellule peut être relue à l'aide de la ligne de code suivante:

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

Section 4.5.4 de la documentation du développeur

Récupération d'une cellule par colonne et ligne

Pour récupérer la valeur d'une cellule, la cellule doit d'abord être extraite de la feuille de calcul à l'aide de la méthode getCellByColumnAndRow. La valeur d'une cellule peut être relue à l'aide de la ligne de code suivante:

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

Si vous avez besoin de la valeur calculée d'une cellule, utilisez le code suivant. Ceci est expliqué plus en détail en 4.4.35

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

De loin le plus simple - et il utilise des coordonnées Excel normales:

// Assuming $sheet is a PHPExcel_Worksheet

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

Vous pouvez séparer les coordonnées dans une fonction si vous le souhaitez:

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

Il s'agit d'une réponse basée sur la source, n'hésitez pas à améliorer ou à commenter.

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);

Cela ne fonctionne pas au-delà de la lettre Z et pourrait être amélioré mais fonctionne pour mes besoins.

1
CrandellWS