wkirschbaum

wkirschbaum

Ex_spreadsheet - fast, memory-efficient Elixir library for parsing spreadsheet files

Hi everyone. We released Spreadsheet a couple of months ago which we have been using internally for parsing xlsx files internally for our production systems. There are already a couple of xlsx parsing libraries, but none of them managed to handle the file sizes and data types we found in the wild. We also needed something which can parse some other spreadsheet formats. Luckily we found a rust library called calamine which handled 99% of our scenarios and created this library to essentially wrap it with rustler.

It would be good to know if this can be useful for someone else.

Here are some benchmarks we ran today:
https://github.com/floatpays/ex_spreadsheet/blob/main/benchmarks/RESULTS.md

Docs: Spreadsheet — spreadsheet v0.6.0
Source:

https://github.com/floatpays/ex_spreadsheet

First Post!

siraj-samsudeen

siraj-samsudeen

this would be lovely as we deal with a lot of XLSX and XLS files.

Most Liked

wkirschbaum

wkirschbaum

There is another library for writer spreadsheets we were working on and is published, but think we want to change the api slightly. It’s called xlsx_writer, also a rust library. You can check it out: xlsx_writer | Hex . It just needs a little bit of work still imo. Comments are welcome.

We thought about combining the two into one, but decided against it in the end for various reasons.

Where Next?

Popular in Announcing Top

Crowdhailer
Experimenting with this code. OK.try do user <- fetch_user(1) cart <- fetch_cart(1) order = checkout(cart, user) save_orde...
New
josevalim
Hi everyone, We would like to announce that Plataformatec is working on a new MySQL driver called MyXQL. Our goal is to eventually integ...
New
ityonemo
Currently just starting out on a new mini-project - getting zig NIFs to run in elixir. https://github.com/ityonemo/zigler The idea here...
New
kevinlang
Hey all, We have made an Ecto3 Adapter for SQLite3, ecto_sqlite3! We have successfully on-boarded the full suite of integration tests (...
New
benlime
LiveMotion enables high performance animations declared on the server and run on the client. As a follow up to my previous thread A libr...
New
restlessronin
The repo is at GitHub - cyberchitta/openai_ex: Community maintained Elixir library for OpenAI API · GitHub. Docs are at OpenaiEx User Gu...
152 10796 134
New
brainlid
LangChain is short for Language Chain. An LLM, or Large Language Model, is the “Language” part. This library makes it easier for Elixir a...
New

Other popular topics Top

nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 31586 112
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement