What I really would love to see implemented in FPSpreadsheet would be a filtering facility identical to that of LibreOffice (see attached screenshot), in which spreadsheet rows meeting the (multiple) filtering criteria would be displayed, while those rows not meeting such criteria would be hidden (that is, the filtering operation would be performed in the current spreadsheet, without the need of 'copying' filtered rows to another worksheet, etc.).
I will definitely not add forms to the basic fpspreadsheet library. Imagine a user wants to change the arrangements of the controls on the form. Or another user cannot use the LCL controls because his entire application is based on some commercial control library and this form would break a consistent look and feel of the application.
What could be done, however, is to prepare a demo which shows how filtering could be implemented; then the user can copy the "filter dialog" form over to his application and modify it as required.
And beyond that, I am not sure if a filtering procedure should be in fpspreadsheet at all. As you saw in my examples, it is a simple programming task, and it can be further simplified by employing the fpspreadsheet search engine. If you do it yourself you can decide how to handle the filtered (hidden) rows: hide them in the originating sheet, or copy the non-filtered rows to another sheet. When filtering is a built-in function, however, all such cases must be considered and prepared. This will add code which many users will never be applying. Another sideeffect is that a filter procedure must store the information about which rows will have to be hidden. This will further add to the memory consumption of fpspreadsheet. Or: should filtering be a method of the basic TsWorksheet, of the TsWorkbookSource, or of the grid?
So, there is a lot to consider...