Метод getValue () делает именно то, что должен, без попыток быть умным. Возвращает фактическое значение, хранящееся в ячейке. Если эта ячейка содержит целое число, она возвращает целое число; если ячейка содержит число с плавающей точкой, она возвращает число с плавающей точкой; если он содержит строку, он возвращает строку. Если вы умен, то возвращаете это значение в виде отформатированной строки (с ведущими нулями, если это уместно), поэтому вам нужно использовать другой метод и применить форматирование ячейки к возвращенному значению.
foreach($cellIterator as $cell){
$cells[] = PHPExcel_Style_NumberFormat::toFormattedString( $cell->getValue(),
$objPHPExcel->getCellXfByIndex( $cell->getXfIndex() )->getNumberFormat()->getFormatCode()
);
}
или если ячейка содержит формулу:
foreach($cellIterator as $cell){
$cells[] = PHPExcel_Style_NumberFormat::toFormattedString( $cell->getCalculatedValue(),
$objPHPExcel->getCellXfByIndex( $cell->getXfIndex() )->getNumberFormat()->getFormatCode()
);
}
И, пожалуйста, не используйте @, чтобы попытаться подавить ошибки. PHPExcel генерирует исключения, и вы действительно должны их перехватывать.
Однако, для того, что вы делаете, вы можете рассмотреть метод toArray () рабочего листа, который будет возвращать массив всех значений ячеек в рабочем листе.