Exoffice is an Elixir library that parses common Excel formats: .xls (Excel 2003), .xlsx, (Excel 2007), .csv and saves parsed data into ets
(excep .csv, which uses stream)
If available in Hex, the package can be installed as:
- Add
exoffice
to your list of dependencies inmix.exs
:
```elixir
def deps do
[{:exoffice, "~> 0.2.0"}]
end
```
Each parser has functions to parse, count rows, get rows and close file.
By default all sheets will be parsed:
[{:ok, pid1, parser1}, {:ok, pid2, parser1}] = Exoffice.parse("./test/test_data/test.xls")
[{:ok, pid3, parser2}, {:ok, pid4, parser2}] = Exoffice.parse("./test/test_data/test.xlsx")
[{:ok, pid5, parser3}] = Exoffice.parse("./test/test_data/test.csv")
To parse a single sheet:
{:ok, pid1, parser1} = Exoffice.parse("./test/test_data/test.xls", 1)
{:ok, pid2, parser2} = Exoffice.parse("./test/test_data/test.xlsx", 1)
{:ok, pid3, parser3} = Exoffice.parse("./test/test_data/test.csv", 1)
To count rows:
Exoffice.count_rows(pid, parser)
To get rows:
stream = Exoffice.get_rows(pid, parser)
Don't forget to close pid when you don't need data anymore:
Exoffice.close(pid, parser)