Exportando informações para o Excel com Ruby

03/05/07

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,

Deixe um comentário




Este blog usa o Gravatar.


Não é aceito código HTML:
adicione-o no pastie.caboo.se 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.