KernelMadness / exoffice

Library to parse common excel formats (xls, xlsx, csv)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Exoffice

Build Status

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)

Installation

If available in Hex, the package can be installed as:

  1. Add exoffice to your list of dependencies in mix.exs:
```elixir
def deps do
  [{:exoffice, "~> 0.2.0"}]
end
```

Usage

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)

About

Library to parse common excel formats (xls, xlsx, csv)


Languages

Language:Elixir 100.0%