Jet/ACE OLE DB either read worksheet as strings, or as typed columns, so you either lose numbers precision or you must have headers in the first row. Thus, they are to be avoided. 
- No library supports XLSB.
 
- Speed.
- For a large XLS, the time of reading for 
NPOI:Jet:Koogra:EDR is 14:8:7:5. 
- For the same XLSX, the time for 
EPPlus:NPOI:Koogra:EDR is 52:36:20:16. 
- For relatively small files with many tabs 
EPPlus can be a bit faster than EDR. 
 
- Errors (#DIV/0!, #VALUE!) etc.
EDR and Koogra don't explicitly support errors. EDR reads them as usual strings, Koogra -- as blank cells. 
NPOI and EPPlus do. 
 
- Koogra reads dates as [OLE date] numbers and they are undistinguishable from real numbers. Also it sometimes reads numbers with many decimals digits incorrectly. 
EDR gets this fine. So, no to Koogra. 
NPOI is complicated, 5 dlls of 4 MB. Koogra and EDR are simple, 200 KB and two dlls (themselves and zip) each. 
EDR works as a IDataReader, so it reads data sequentially. It also has built-in function to get a DataSet. With sequential read yoou can only go through first sheet in the work book. Koogra supports random access to cells and sheets. 
EDR is based on SharpZip, Koogra is based on Ionic.Zip. The former allows to open a file from .zip a Stream which can be benefical for other parts of the project. 
I haven't looked at writing aspects of NPOI, so without the need to distinguish errors, I would go with EPPlus for .xlsx and with EDR for reading .xls.