Skip to content

tomiacannondale/rusk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Read and write Open Document Spreadsheet Format(ods).

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages