odsreader
OpenDocument Spreadhseet reader
Summary
| Latest Version | 0.4.0 |
|---|---|
| License | MIT |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-08-02 05:04 |
Tags
Authors
- Dario Lah
Installation
nimble install odsreader
choosenim install odsreader
git clone https://github.com/dariolah/odsreader
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| odsreader | ✓ | ✓ | ✓ | - | - | - | - | - | - | - |
Dependencies
| Package | Version | Optional |
|---|---|---|
| nim >= | 1.6.0 | No |
| zippy >= | 0.10.0 | No |
Source
| Repository | https://github.com/dariolah/odsreader |
|---|---|
| Homepage | https://github.com/dariolah/odsreader |
| Registry Source | nimble_official |
README
odsreader - library for reading OpenDocument Spreadsheet (.ods) files
QuickStart
demo.nim
import odsreader
import strformat
import std/tables
proc mainProc =
let ods_filename = "tests/test.ods"
echo &"Loading first sheet from {ods_filename}"
let doc = loadOds(filename)
echo doc.getSheetNames()
echo doc["Sheet1"].getColumnNames()
# Sheet iterator
for row in doc.["Sheet1"]:
# row column access
echo row["first"]
if isMainModule:
mainProc()
Or just use nested sequences and tables...
demoseq.nim
import odsreader
import strformat
import std/tables
proc mainProc =
let ods_filename = "tests/test.ods"
echo &"Loading first sheet from {ods_filename}"
let odsFirstSheet = loadOdsAsSeq(ods_filename)
echo odsFirstSheet
# load sheet by name
echo &"Loading sheet Sheet2 from {ods_filename}"
let odsSheet2 = loadOdsAsSeq(ods_filename, "Sheet2")
echo odsSheet2
# load all sheets as table
echo &"Loading all sheets from {ods_filename} as table"
let odsTable = loadOdsAsTable(ods_filename)
echo odsTable
if isMainModule:
mainProc()