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
exofficeto 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)