It shouldn't be the same. You shouldn't be getting Call to undefined method PHPExcel_Cell::getRichTextElements() because you shouldn't be calling that method against the Cell object.
Retrieve the cell value; test if the returned value is an instance of Rich_Text; if (and only if) the cell value is rich text should you try and call the getRichTextElements() method against that Rich_Text object.
And get rid of $reader->setReadDataOnly(true); which means __DON'T READ THE CELL FORMATTING__.... you want the formatting, because Rich Text IS formatting
Retrieve the cell value; test if the returned value is an instance of Rich_Text; if (and only if) the cell value is rich text should you try and call the getRichTextElements() method against that Rich_Text object.
And get rid of $reader->setReadDataOnly(true); which means __DON'T READ THE CELL FORMATTING__.... you want the formatting, because Rich Text IS formatting