Thanks! I appreciate the insights.
The original Excel XLSX file is only 123MB but it has one spreadsheet with 1 million rows. As I would expect, the Perl modules use more memory than the XLSX file size, probably due to hashes.
I understand that it is a very large file for Excel but that is what the client is bringing.
I'm leaning towards reading the file with another language (Java maybe) and convert it into text and then read it with Perl. Convoluted unfortunately. I will also check the Win32::OLE suggestion.