PHPExcel如何只获得1个单元格值?

时间:2014-03-21 18:22:06

标签: php phpexcel

我认为getCell($X, $y)getCellValue($X, $y)可供一个人轻松选择某个值。这可以是有用的,例如在更大的流程之前交叉检查数据。

如何从说明单元格 C3 获得特定值。

我不希望对数组进行排序。

3 个答案:

答案 0 :(得分:49)

开发者文档的第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();

答案 1 :(得分:7)

到目前为止最简单 - 它使用正常的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();

答案 2 :(得分:1)

这是一个基于来源的答案,随时可以改进或评论。

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之后不起作用,可以改进,但可以满足我的需要。