Why does PhpSpreadsheet fail to identify my Xlsx file in public://?
Looks like PhpSpreadsheet can't read URIs, but only file paths.
You need to find the path to the file on the system.

$real_path_to_file = \Drupal::service('file_system')-&gt;realpath($file-&gt;getFileUri());


(Ideally you'd inject file_system and not call this service statically.)