TDataset has only rudimentary support of indexes. When a descendant has indexes it gets them from the underlying database engine, or, as in case of TBufDataset, creates them by itself.
Unfortunately I had built TsWorksheetDataset similar to TMemDataset because it is very simple, and therefore, providing an index is rather difficult.
On the other hand, TBufDataset has a very flexible infrastructure regarding the format of the data files based on so-called "packet readers". Therefore, I have the idea to speeze in fpspreadsheet as a new packet reader class. This way, TsWorksheetDataset would have the same functionality as TBufdataset, but would work now with worksheets rather than with xml files. The only problem is that the packet readers have a stream-based interface to read (and write) the data, but I am rather sure that TsWorksheetDataset must provide an already loaded workbook/worksheet.