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!
- Permalink
- Trackback
- Comentários (7)
- Ao som de: Something Corporate – The Runaway
Textos escritos por
Comentários #
Puts que trabalho heim Nando =D Muito legal!
E tem gente que fala que não gosta de Ruby porque é *muito* flexível! :P
simplesmente genial! Pretendo usar seu codigo assim que possivel... :):)
olha só...
fui abrir o arquivo no excel e deu erro:: arquivo corrompido :(
Nando, você ainda utiliza esse meio para gerar o arquivos no formato excel ou utiliza algum outro gem ou plugin?
Abraço,
Muito bom cara, irei testar mais tarde em casa.
Parabens!
Tem gente que não gosta do Rails, mas sei que quanto mais programo e aprendo Rails, mais me apaixono, "o coisinha totosa de degustar", :D~
Deixe um comentário