# OdsIO.jl first release - LibreOffice calc I/O for Julia!

**URL:** <https://discourse.julialang.org/t/odsio-jl-first-release-libreoffice-calc-i-o-for-julia/788>\
**Category:** Community\
**Tags:** package, announcement\
**Created:** [December 7, 2016, 7:27pm UTC](https://discourse.julialang.org/t/odsio-jl-first-release-libreoffice-calc-i-o-for-julia/788 "2016-12-07T19:27:33Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)\
**Post date:** [December 7, 2016, 7:27pm UTC](https://discourse.julialang.org/t/odsio-jl-first-release-libreoffice-calc-i-o-for-julia/788/1 "2016-12-07T19:27:33Z")

</div>

An experimental package to convert ods (e.g. LibreOfiice calc) in either Julia dictionaries or DataFrames, using PyCall and the Python ezodf module.

[https://github.com/sylvaticus/OdsIO.jl](https://github.com/sylvaticus/OdsIO.jl)

The ods2julia is complete (although not optimized and not fully tested), the opposite direction is in program for February 2017.

## Functions provided:

```
ods2dics(filename;sheetsNames=[],sheetsPos=[],ranges=[])
ods2dfs(filename;sheetsNames=[],sheetsPos=[],ranges=[])

```

sheetsNames (optional) are a list of sheet names from which to import data  
sheetsPos (optional) aree a list of sheet positions (starting from 1) from which to import data  
sheetsNames and sheetsPos can not be given together  
ranges (optional) is a list of pair of touples defining the ranges in each sheet to import ((tlr,trc),(brr,brc))  
The functions return a list of dictionaries or DataFrames indexed by position or names (this is the reason of the s in the function name)

The following functions are provided for convenience:

```
ods2dic(filename; sheetName=Null,sheetPos=Null,range=())
ods2df(filename;sheetName=Null,sheetPos=Null,range=())

```

Where sheetName, sheetPos and range are scalars and return directly a single dic/df. If none of sheetName or sheetPos are provided the function return the data of the first sheet.

This is my first package and I am pretty new to the Julia language as well, so I welcome all your (constructive) comments.

/Antonello
