Exportando informações para o Excel com Ruby
Leia em menos de um minuto
Fazendo alguns testes no Spesa, cheguei a uma função que está me servindo muito bem. Através de um array, eu gero um arquivo que o Microsoft Excel, OpenOffice e Gnumeric é capaz de ler sem muito esforço. Estendi a classe Array do Ruby, para ficar ainda mais fácil!
#Author: Nando Vieira <fnando dot vieira at gmail dot com>
class Array
def to_xls
content = ''
self.each do |row|
row.map! {|col| col = col.to_s.gsub(/(\t|\r\n|\r|\n)/sim, " ").gsub(/ +/, " ") }
content << row.join("\t")
content << "\n"
end
content
end
end
Para usar é muito simples! Basta você algo como o código abaixo.
xls = [
['name', 'email', 'age', 'salary'],
['john', 'john@example.com', 27, 4212.50],
["michael", "mike@example.com", 22, 6150],
["", "", "", "=SUM(D2:D3)"]
].to_xls
f = File.new("test.xls", "w+")
f << xls
f.close
Percebeu que eu posso até usar fórmulas nas colunas? Neste exemplo, eu faço uma soma da coluna "Salary". Mais fácil que isso, impossível!