Rusk

Rusk is library that read and write Open Document Spreadsheet Format(ods).

Installation

Add this line to your application's Gemfile:

gem 'rusk'

And then execute:

$ bundle

Or install it yourself as:

$ gem install rusk

Usage

Open file

Read with block.

Rusk::Book.open('path_to_odsfile') do |book|
  # do something
end

Read without block.

book = Rusk::Book.open('path_to_odsfile')
book.close

Rusk::Book.open can't create new file.

Save file

Rusk::Book.open('path_to_odsfile') do |book|
  # do something
  book.save
end

access sheet

Rusk::Sheet object can access with Rusk::Book#[] method.

Rusk::Book#[] can access with sheet name or index.

sheet = book[0]

or

sheet = book["Sheet1"]

access cell

read cell

Rusk::Cell object can access with Rusk::Sheet#[] and Rusk::Sheet#each and Rusk::Sheet#each_row.

Rusk::Sheet#[]

cell = Rusk::Sheet[0, 0]   # get Rusk::Cell at [A1]

Rusk::Sheet#each

sheet.each do |cell|
  # do something (cell is Rusk::Cell)
end

Rusk::Sheet#each_row

sheet.each_row do |row|
  # do something (row is Array of Rusk::Cell elements)
end

Rusk::Sheet#each_column

    sheet.each_column do |column|
  # do something (column is Array of Rusk::Cell elements)
end

If Rusk::Sheet#each, each_row, each_column call without block, return Enumerator instance

    sheet.each_row     # return Enumerator

# use method chain
sheet.each_row.with_index |rows, index|
end

cell's value

Rusk::Cell#value gets the value of the cell according to the format.

# when cell's value is string
cell.value  # => "Matz"
# when cell's value is float
cell.value  # => 1.0
# when cell's value is date
cell.value  # => #<Date: 2012-01-01 ((2455928j,0s,0n),+0s,2299161j)>
# when cell's value is enter date of time
cell.value # => #<DateTime: 2012-01-01T00:00:00+00:00 ((2455928j,0s,0n),+0s,2299161j)>
# when cell's value is time
cell.value # => "12:30" (string not time)
# when cell's value is percentage(maybe application(example LibreOffice, OpenOffice) show '10%')
cell.value  # => 0.1
# when cell's value is boolean
cell.value # => ture or false

modify cell

To set value to cell, use Rusk::Cell#value=.

cell.value = "string" # => set "string" to cell and set string to value-type
cell.value = 1.0      # => set 1.0(float) to cell and set float to value-type
cell.value = Date.new(2012,4,29)   # => set cell 2012-04-29 to cell and set date to value-type

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Support

Report issues and feature requests to github Issues.

Author

tomi

License

MIT License. For more imformation, please see LICENSE.