Parse a dataset in xls or xlsx format. This namespace auto-registers a handler for the xls file type so that when using ->dataset, xls will automatically map to (first (workbook->datasets)).

Note that this namespace does not auto-register a handler for the xlsx file type. xlsx is handled by the fastexcel namespace.

If you have an xlsx or xls file that contains multiple sheets and you want a dataset out of each sheet you have to use workbook->datasets as opposed to the higher level ->dataset operator.

For serializing datasets to xlsx or xls formats please see kixi.large.

Note that poi has many versions and many version conflicts and for instance the docjure library relies on a much older version of poi.


(input->workbook input options)(input->workbook input)

Given an input data source, return an implementation of tech.v3.dataset/Spreadsheet$Workbook. This interface allows you to iterate through sheets without necessarily parsing them. Once you have a spreadsheet, use>dataset to get a dataset.


(workbook->datasets input options)(workbook->datasets input)

Given a workbook, a string filename or an input stream return a sequence of datasets named after the sheets.

Options are a subset of the arguments for tech.v3.dataset/->dataset:

  • :file-type - either :xls or :xlsx - inferred from the filename when input is a string. If input is a stream defaults to :xlsx.
  • :header-row?
  • :num-rows
  • :n-initial-skip-rows
  • :parser-fn