Ruby on Rails Paperclip xls to csv Processor
This gem is Paperclip processor, that uses xls2csv to convert .xls to .csv.
Requirements
Installation
gem 'xls_to_csv-paperclip-processor'
xls2csv Instalation
Install xls2csv using your favorite package manager. On OS X, the easiest way to do it is by using Homebrew.
sudo brew install catdoc
Various linux distributions should use similar methods with their respected package managers.
Using Processor
Use it as you would any other Paperclip processor. In your model:
class SomeCsvAttachement < ActiveRecord::Base
has_attached_file :data,
:styles => {
:converted => {
:format => "csv",
:params => "-c, -q 3"
}
},
:path => ":rails_root/data/some_csv_attachements/:id_partition/:basename.:extension",
:processors => [:xls_to_csv]
validates_attachment_content_type :data, :content_type => ['text/csv','text/comma-separated-values','text/csv','application/csv','application/excel','application/vnd.ms-excel','application/vnd.msexcel','text/anytext','text/plain']
end
which will convert your .xls document into .csv, and keep both files (.xls and .csv) on the server. If your attachment is not a .xls it will just copy it.