2017-05-10 5 views
1

Le but ultime ici est de créer un flux afin que je puisse attacher le document xlsx généré à partir de l'objet paquet axlsx. Je suis en mesure de sérialiser le paquet et il écrit très bien dans le système de fichiers. Je n'ai pas vraiment besoin d'écrire le document dans le système de fichiers.Alxsx gem Le paquet # to_stream échoue

Voici l'erreur que je reçois quand je l'appelle to_stream:

NoMethodError: undefined method `reopen' for "streamed":String Did you mean? prepend

Qu'est-ce que je fais mal ici?

Axlsx::Package.new do |p| 
    p.workbook do |wb| 
    wb.add_worksheet(name: 'Time Cards') do |ws| 
     title_style = ws.styles.add_style(sz: 24) 
     ws.add_row ["Week #{week}, #{year} Time Cards", '', ''], style: [title_style], height: 30 
    end 
    end 
    p.to_stream 
end 
  • Ruby v 2.4.0
  • Rails 5.0.2

Répondre

0

Pour les futurs visiteurs de cette ancienne question:

Vérifiez les versions de axlsx et rubyzip dans votre Gemfile. Pour moi, le problème était que rubyzip était de la version 1.2. La combinaison qui fonctionne pour moi aujourd'hui (08/07/2017) est:

axlsx (2.1.0.pre) et rubyzip (~> 1.1.7)