SODS Save

A simple Java library for handle ODS (Open Document Spreadsheet, compatible with Excel and Libreoffice)

Project README

SODS

Build Status Maven Central Javadoc License: Unlicense

A simple library for process ODS files in Java. It allows read/write ODS files.

Install

Maven

<dependency>
    <groupId>com.github.miachm.sods</groupId>
    <artifactId>SODS</artifactId>
    <version>1.6.7</version>
</dependency>

Gradle Kotlin DSL

implementation("com.github.miachm.sods:SODS:1.6.7")

Gradle Groovy DSL

implementation 'com.github.miachm.sods:SODS:1.6.7'

Other Dependency Management

Docs

You can access the javadocs here

There is an examples folder where you can read codes samples.

F.A.Q

What is an ODS?

ODS means Open Document Spreadsheet. It's used in applications like Libreoffice or Open Office.

Libreoffice Calc

What is the motivation of this?

I needed to generate ODS files in Java. I looked for libraries, but they are:

  • Deprecated or dead, like Apache ODF Toolkit. It's not working with Java 8.
  • It has Libre Office as dependency in the user's computer. That's so much (Libre Office Api).
  • Poorly designed or bloated.

So, i decided create my own library from scratch. The objetive is load and generate ODS files in a simple and easy way.

What is the current state?

Right now you can:

  • Load the cell's values from an ODS file.
  • Manipulate these values.
  • Some formating (bold fonts, italic style, underline...).
  • Save it back to an ODS file.

This is an example of an ODS file in LibreOffice Sample Libreoffice

Here, i am using SODS for load the file and rendering it with JavaFX

Sample SODS

How it works?

This is a code example:

package com.github.miachm.sods.examples;

import com.github.miachm.sods.Range;
import com.github.miachm.sods.Sheet;
import com.github.miachm.sods.SpreadSheet;

import java.io.File;
import java.io.IOException;
import java.util.List;

public class BasicUsage{
    public static void main(String args[]){
        try {
            SpreadSheet spread = new SpreadSheet(new File("resources/BasicExample.ods"));
            System.out.println("Number of sheets: " + spread.getNumSheets());

            List<Sheet> sheets = spread.getSheets();

            for (Sheet sheet : sheets) {
                System.out.println("In sheet " + sheet.getName());

                Range range = sheet.getDataRange();
                System.out.println(range.toString());
            }
        } catch (IOException e){
            e.printStackTrace();
        }
    }
}

Check more examples here

Contributions are welcome!

Open Source Agenda is not affiliated with "SODS" Project. README Source: miachm/SODS
Stars
71
Open Issues
9
Last Commit
4 months ago
Repository
License

Open Source Agenda Badge

Open Source Agenda Rating