I just finished cleaning up a library I’ve been working on for reading Excel documents (XLSX / SpreadsheetML):
I’ve tried to separate out the various bits, so you if you want to read Microsoft’s “Open Packaging Conventions” files (the generic packaging for all Microsoft Office docs), there’s
open_packaging. If you want to read SpreadsheetML files (i.e. Excel files) there’s
spreadsheetml, and if you just want to open an Excel file and get the data out, there’s
easy_xlsx, which exposes an XLSX file as a list of sheets (sheet name, rows) where each row is a list of values (date, datetime, number, string, time of day).
The interface isn’t exactly ideal, since CamlZip can only open files, and date and time formats aren’t built into the standard library, so this requires
core_kernel. It’s also not particularly efficient right now, but pull requests are welcome!
If you have files where
easy_xlsx doesn’t do the right thing, please open an issue and attach the file.
I would upload it to opam but
opam prepare is giving me empty folders, and I’ve run out of time to spend on it this weekend.