odsreader

OpenDocument Spreadhseet reader

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version 0.4.0
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-08-02 05:04

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()