All Projects → xavier → xlsx_reader

xavier / xlsx_reader

Licence: other
A production-ready XLSX file reader for Elixir.

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to xlsx reader

Excelize
Golang library for reading and writing Microsoft Excel™ (XLSX) files.
Stars: ✭ 10,286 (+22260.87%)
Mutual labels:  excel, xlsx, spreadsheet, openoffice
Unioffice
Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents
Stars: ✭ 3,111 (+6663.04%)
Mutual labels:  excel, xlsx, spreadsheet, openoffice
spreadcheetah
SpreadCheetah is a high-performance .NET library for generating spreadsheet (Microsoft Excel XLSX) files.
Stars: ✭ 107 (+132.61%)
Mutual labels:  excel, xlsx, spreadsheet
Documentbuilder
ONLYOFFICE Document Builder is powerful text, spreadsheet, presentation and PDF generating tool
Stars: ✭ 61 (+32.61%)
Mutual labels:  excel, xlsx, spreadsheet
xlsx-reader
xlsx-reader is a PHP library for fast and efficient reading of XLSX spreadsheet files. Its focus is on reading the data contained within XLSX files, disregarding all document styling beyond that which is strictly necessary for data type recognition. It is built to be usable for very big XLSX files in the magnitude of multiple GBs.
Stars: ✭ 40 (-13.04%)
Mutual labels:  excel, xlsx, spreadsheet
Sheetjs
📗 SheetJS Community Edition -- Spreadsheet Data Toolkit
Stars: ✭ 28,479 (+61810.87%)
Mutual labels:  excel, xlsx, spreadsheet
Xlnt
📊 Cross-platform user-friendly xlsx library for C++11+
Stars: ✭ 876 (+1804.35%)
Mutual labels:  excel, xlsx, spreadsheet
Desktopeditors
An office suite that combines text, spreadsheet and presentation editors allowing to create, view and edit local documents
Stars: ✭ 1,008 (+2091.3%)
Mutual labels:  excel, xlsx, spreadsheet
Xlsx
Fast and reliable way to work with Microsoft Excel™ [xlsx] files in Golang
Stars: ✭ 132 (+186.96%)
Mutual labels:  excel, xlsx, spreadsheet
xltpl
A python module to generate xls/x files from a xls/x template.
Stars: ✭ 46 (+0%)
Mutual labels:  excel, xlsx, spreadsheet
easy-excel
🚀 快速读写Excel文件,简单高效
Stars: ✭ 118 (+156.52%)
Mutual labels:  excel, xlsx, spreadsheet
Dexiom.EPPlusExporter
A very simple, yet incredibly powerfull library to generate Excel documents out of objects, arrays, lists, collections, etc.
Stars: ✭ 19 (-58.7%)
Mutual labels:  excel, xlsx, spreadsheet
Readxl
Read excel files (.xls and .xlsx) into R 🖇
Stars: ✭ 585 (+1171.74%)
Mutual labels:  excel, xlsx, spreadsheet
Luckysheet
Luckysheet is an online spreadsheet like excel that is powerful, simple to configure, and completely open source.
Stars: ✭ 9,772 (+21143.48%)
Mutual labels:  excel, xlsx, spreadsheet
Reogrid
Fast and powerful .NET spreadsheet component, support data format, freeze, outline, formula calculation, chart, script execution and etc. Compatible with Excel 2007 (.xlsx) format and working on .NET 3.5 (or client profile), WPF and Android platform.
Stars: ✭ 532 (+1056.52%)
Mutual labels:  excel, xlsx, spreadsheet
Docjure
Read and write Office documents from Clojure
Stars: ✭ 510 (+1008.7%)
Mutual labels:  excel, xlsx, spreadsheet
Documentserver
ONLYOFFICE Document Server is an online office suite comprising viewers and editors for texts, spreadsheets and presentations, fully compatible with Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing in real time.
Stars: ✭ 2,335 (+4976.09%)
Mutual labels:  excel, xlsx, spreadsheet
J
❌ Multi-format spreadsheet CLI (now merged in http://github.com/sheetjs/js-xlsx )
Stars: ✭ 343 (+645.65%)
Mutual labels:  excel, xlsx, spreadsheet
Phpspreadsheet
A pure PHP library for reading and writing spreadsheet files
Stars: ✭ 10,627 (+23002.17%)
Mutual labels:  excel, xlsx, spreadsheet
Test files
📚 SheetJS Test Files (XLS/XLSX/XLSB and other spreadsheet formats)
Stars: ✭ 150 (+226.09%)
Mutual labels:  excel, xlsx, spreadsheet

XlsxReader logo

XlsxReader

Build status

An XLSX reader in Elixir.

Features:

  • Accepts XLSX data located on the file system or in memory
  • Automatic type conversions (numbers, date & times, booleans)
  • Optional support for arbitrary precision decimal numbers
  • Straightforward architecture: no ETS tables, no race-conditions, no manual resource management

The docs can be found at https://hexdocs.pm/xlsx_reader.

Installation

Add xlsx_reader as a dependency in your mix.exs:

def deps do
  [
    {:xlsx_reader, "~> 0.5.0"}
  ]
end

Run mix deps.get in your shell to fetch and compile XlsxReader.

Examples

Loading from the file system

{:ok, package} = XlsxReader.open("test.xlsx")

XlsxReader.sheet_names(package)
# ["Sheet 1", "Sheet 2", "Sheet 3"]

{:ok, rows} = XlsxReader.sheet(package, "Sheet 1")
# [
#   ["Date", "Temperature"], 
#   [~D[2019-11-01], 8.4], 
#   [~D[2019-11-02], 7.5], 
#   ...
# ]

Loading from memory

blob = File.read!("test.xlsx")

{:ok, package} = XlsxReader.open(blob, source: :binary)

Loading all sheets at once

{:ok, sheets} = XlsxReader.sheets(package)
# [
#   {"Sheet 1", [["Date", "Temperature"], ...]}, 
#   {"Sheet 2", [...]}, 
#   ...
# ]

Loading sheets selectively

{:ok, sheets} = XlsxReader.sheets(package, only: ["Parameters", ~r/Sheet \d+/], except: ["Sheet 2"])
# [
#   {"Parameters", [...]}, 
#   {"Sheet 1", [...]}, 
#   {"Sheet 3", [...]}, 
#   {"Sheet 4", [...]}, 
#   ...
# ]

Loading all sheets at once concurrently

{:ok, sheets} = XlsxReader.async_sheets(package)
# [
#   {"Sheet 1", [["Date", "Temperature"], ...]}, 
#   {"Sheet 2", [...]}, 
#   ...
# ]

Using arbitrary precision numbers

{:ok, rows} = XlsxReader.sheet(package, "Sheet 1", number_type: Decimal)
# [
#   ["Date", "Temperature"], 
#   [~D[2019-11-01], %Decimal{coef: 84, exp: -1, sign: 1}], 
#   [~D[2019-11-02], %Decimal{coef: 75, exp: -1, sign: 1}], 
#   ...
# ]

Development

Benchmarking

  1. mix run benchmark/init.exs to create the benchmarking dataset
  2. mix run benchmark/run.exs to run the Benchee suite

Contributors

In order of appearance:

License

Copyright 2020 Xavier Defrang

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].