PHPExcel Как получить только 1 значение ячейки?
Я думаю, что getCell($X, $y)
или getCellValue($X, $y)
будет доступен для простого выбора определенного значения. Это может быть полезно, например, в виде данных перекрестной проверки перед более крупным процессом.
Как получить конкретное значение из say cell C3.
Я не хочу, чтобы массив значений сортировался.
Ответы
Ответ 1
Раздел 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();
Ответ 2
Безусловно, самый простой - и он использует обычные координаты 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();
Ответ 3
Это ответ на основе источника, который можно улучшить или комментировать.
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 и может быть улучшено, но работает для моих нужд.