/excellent

Excel Parser written in Elixir (currently only Excel 2000)

Primary LanguageElixirApache License 2.0Apache-2.0

Excellent

Build Status Coverage Status hex.pm version

DISCLAIMER: Completely abandoned. No further development will take place. If you're looking for an xlxs parsing library, consider using xlsxir

This is a library for parsing .xlsx files (Open XML format). It is targeted for reading Excel 2000 files into a list of lists.

Sample output:

[
  ["A1", "B1", "C1", "D1"],
  ["A2", "B2", "C2", "D2"],
  ["A3", "B3", "C3", "D3"],
  ["A4", "B4", "C4", "D4"],
  ["A5", "B5", "C5", "D5"],
]

Installation

You can add Excellent as a dependency in your mix.exs file. Since it only requires Elixir and Erlang there are no other dependencies.

def deps do
  [ { :excellent, "~> 0.0.1" } ]
end

If you aren't using hex, add the a reference to the github repo.

def deps do
  [ { :excellent, github: "leifg/excellent" } ]
end

Then run mix deps.get in the shell to fetch and compile the dependencies

Usage

The top level funtion takes 2 arguments: the filename and the number of the worksheet you want to parse (zero based).

Excellent.parse('spreadsheet.xlsx', 0)

=> [
  ["A1", "B1", "C1", "D1"],
  ["A2", "B2", "C2", "D2"],
  ["A3", "B3", "C3", "D3"],
  ["A4", "B4", "C4", "D4"],
  ["A5", "B5", "C5", "D5"],
]

There is also a function to return the names of the worksheets as a tuple:

Excellent.worksheet_names('spreadsheet.xlsx')

=> {"Worksheet 1", "Worksheet 2"}

TODO

  • Read worksheets as stream from ZIP archive
  • Implement different data types (curently only strings and numbers are supported)