Monday, May 23, 2011

Read OpenOffice SpreadSheet (ods)

Moving Ahead







We are going to learn about an open source API called jOpenDocument. In this post, we will write a simple java class to read an openOffice Spreadsheet(ods) file.


A Brief Idea








jOpenDocument is a free java library for reading and manipulating the openOffice documents. You can use jOpenDocument to generate dynamic documents from Java, XML, or databases.You can  display and print files with built-in viewers. jOpenDocument API can be used for splitting , concatenating, and manipulating the pages and to automate filling out of templates.

A Snippet








This is the sample class for reading the .ods file data.


package com.sarf.read;
import java.io.File;
import java.io.IOException;

import org.jopendocument.dom.spreadsheet.MutableCell;
import org.jopendocument.dom.spreadsheet.Sheet;
import org.jopendocument.dom.spreadsheet.SpreadSheet;

public class ODSReader {
      public void readODS(File file)
      {
        Sheet sheet;
        try {
             //Getting the 0th sheet for manipulation| pass sheet name as string
             sheet = SpreadSheet.createFromFile(file).getSheet(0);
              
             //Get row count and column count
             int nColCount = sheet.getColumnCount();
             int nRowCount = sheet.getRowCount();

             System.out.println("Rows :"+nRowCount);
             System.out.println("Cols :"+nColCount);
             //Iterating through each row of the selected sheet
             MutableCell cell = null;
             for(int nRowIndex = 0; nRowIndex < nRowCount; nRowIndex++)
             {
               //Iterating through each column
               int nColIndex = 0;
               for( ;nColIndex < nColCount; nColIndex++)
               {
                 cell = sheet.getCellAt(nColIndex, nRowIndex);
                 System.out.print(cell.getValue()+ " ");
                }
                System.out.println();
              }

            } catch (IOException e) {
              e.printStackTrace();
            }
      }
      public static void main(String[] args) {
            //Creating File object of .ods file
            File file = new File("D:\\TestData\\test.ods");
            ODSReader objODSReader = new ODSReader();
            objODSReader.readODS(file);
      }
 }

To find the answers of these question, you can read the jOpenDocument documentation .

Download API : Click here

In our next post, we will learn about template and how to use it.