The PHPExcel_Reader_IReader interface identifies the methods that are required by all readers: literally just the canRead() and load() methods. All other methods are specific to the readers themselves (i.e. SYLK and CSV are "single sheet" formats, so there
is no purpose in having a listWorksheetNames() method in those classes; and CSV cannot hold formatting information, so having a setReadDataOnly() method would be meaningless in that class.
Just because the file has an .xls extension, doesn't mean it's a BIFF5 file, so using identify is a good safeguard against rogue files.
It is possible to use the IOFactory's identify() method to return the reader that will be used for a file, instantiate that reader, and change any appropriate settings.
$inputFileName = './sampleData/example1.xls';
$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
// Set any $objReader configuration here, as identified by $inputFileType
$objPHPExcel = $objReader->load($inputFileName);