in reply to reading xls
Usually, I prefer to use OLE to open and manage spreadsheets using Excel, instead of trying to parse the file itself.
It is also very desirable if there are (or, could be), named cell-ranges within the spreadsheet document, so that it basically self-identifies what areas within the sheet or the workbook are of interest.
If you can’t arrange for any of these things, the program simply has to be able to iterate through the rows or columns, looking (through tests of several cells) for “what looks like data.” Normally, I will design the program so that it inspects the file first, sniffing for problems so that if the wrong file has been provided or it doesn’t contain good data, nothing will be loaded from it.