# Simple Spreadsheet Recently I wrote a module to import raw data from Excel-like files to database and export it in various formats. To accomplish this i have to use different gems with different usage patterns so I decide to wrap them in a single simple gem. This is a spreadsheet reader and writer that (will) supports common formats: CSV (.csv), Excel (.xls, .xlsx), Open-office (.ods) and Google (online). Used gems: - Roo (http://roo.rubyforge.org/) - Spreadsheet (http://spreadsheet.ch/) - RubyXL (https://github.com/gilt/rubyXL) ## Installing Add to your Gemfile and run the `bundle` command to install it. ```ruby gem "simple-spreadsheet" ``` **N.B. Requires Ruby 1.9.2 or later.** ## Basic functionality ### Reading Spreadsheet Example: ```ruby s = SimpleSpreadsheet::Workbook.read("my_spreadsheets_file.xls") ``` Supported formats:
Excel (.xls) Excelx (.xlsx) Openoffice (.ods) CSV (.csv) CSV Excel CSV Tab Separated
Yes Yes Yes Yes Yes Yes
## Recipes ### Get all data from some cols of first sheet of a XLS file ```ruby require "simple-spreadsheet" s = SimpleSpreadsheet::Workbook.read("my_spreadsheets_file.xls") s.select_worksheet = s.sheets.first s.first_row.upto(@workbook.last_row) do |line| data1 = s.cell(line, 1) data2 = s.cell(line, 3) end ``` ### Get all data from some cols of first sheet of a XLS file (option 2) ```ruby require "simple-spreadsheet" s = SimpleSpreadsheet::Workbook.read("my_spreadsheets_file.xls") s.first_row.upto(@workbook.last_row) do |line| data1 = s.cell(line, 1, 1) data2 = s.cell(line, 3, 1) end ``` ### Accessing CSV Excel (semicolon separated) ```ruby s = SimpleSpreadsheet::Workbook.read("my_spreadsheets_file.csv", ".csvx") ``` ### Accessing CSV Tab separated ```ruby s = SimpleSpreadsheet::Workbook.read("my_spreadsheets_file.csv", ".csvt") ``` ## Future plans - Reading support for all formats - More efficent reading for big spreadsheets (extending Roo) - Writing support for all formats - More reading functionalities - Edit support fo all formats