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!

Comentários #

#1 Carlos Eduardo disse:
04 Maio 07, 02:45PM

Puts que trabalho heim Nando =D Muito legal!

#2 Nando Vieira disse:
04 Maio 07, 06:07PM

E tem gente que fala que não gosta de Ruby porque é *muito* flexível! :P

#3 herval disse:
04 Maio 07, 10:50PM

simplesmente genial! Pretendo usar seu codigo assim que possivel... :):)

#4 Fabio disse:
09 Jan 08, 10:54AM

olha só...

fui abrir o arquivo no excel e deu erro:: arquivo corrompido :(

#5 Arthur disse:
17 Jan 08, 04:50PM

Nando, você ainda utiliza esse meio para gerar o arquivos no formato excel ou utiliza algum outro gem ou plugin?

Abraço,

#6 Rafael Fidelis disse:
05 Maio 11, 05:31PM

Muito bom cara, irei testar mais tarde em casa.
Parabens!

#7 Alex Roveda disse:
30 Ago 11, 09:30AM

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





Não é aceito código HTML: adicione-o no pastie.org ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.

jQuery: Dominando o framework

Você quer aprender a usar jQuery de verdade? Então chegou a hora! Neste workshop você verá como funciona este framework de JavaScript, entendendo todos os aspectos que fazem do jQuery uma das melhores ferramentas para desenvolvimento de interfaces.

Saiba mais Fechar

Conheça também o HOWTO