1

宝石

https://github.com/randym/axlsx

https://github.com/randym/acts_as_xlsx

チュートリアル

http://axlsx.blog.randym.net/2011/12/axlsx-making-excel-reports-with-ruby-on.html

チュートリアルでは、Post モデルが Excel シートに追加され、各属性が列になります。ただし、私の目的のために、各投稿を独自のシートにしたいと思います。私はこれらの宝石の両方に不慣れで、その調整に苦労しています.

彼らがしたことを共有できるこれをすでに達成した人はいますか?

4

1 に答える 1

0

この例を参照すると、列ごとにワークブックを作成し、各ワークブックの最初のシートをモデルのすべてのシートを含む新しいワークブックにコピーできます。

format.xlsx {
  p = Axlsx::Package.new
  wb = p.workbook

  col_1 = Post.to_xlsx({:columns => [:id]})
            :name => "Posts1"

  wb.worksheets[0] = col_1.workbook.worksheets.first

  col_2 = Post.to_xlsx({:columns => [:content]})
            :name => "Posts2"

  wb.worksheets[1] = col_2.workbook.worksheets.first

  begin
    temp = Tempfile.new("posts.xlsx")
    p.serialize temp.path
    send_file temp.path, :filename => "posts.xlsx", :type => "application/xlsx"
  ensure
    temp.close
    temp.unlink
  end
}  
于 2015-05-03T13:35:35.920 に答える