4

次のような方法でRailsからExcelにデータをエクスポートしたいと思います。

  • 特殊文字(é、ô、üなど)をサポートします
  • Excel2007以降のすべてのバージョンで動作します
  • エクスポートする前に計算列を追加できます

to_xls gemの使用を考えていますが、任意の配列(Active Recordオブジェクトのみ)で機能させることができません。

ドキュメントによると、gemはActive Recordセットのエクスポートにわずかに向けられており、配列をExcelに変換するように設計されているため、可能である必要があります。

問題は、配列内の各オブジェクトが.attributesに応答する必要があることだと思います。エクスポートの基になっているActiveRecordモデルに仮想属性を追加するアプローチを試しましたが、.attributesが呼び出されたときにこれが表示されないようです。

どうすればこれを機能させることができますか?(または、これらの目標を達成するための別の方法を提案できますか?)

4

2 に答える 2

4

これは、任意の配列とActiveRecordオブジェクトで機能するはずです。どうやら、to_xls gemは:columnsおよび:headersパラメーターを介したすべてのカスタマイズをサポートしているようです。

require 'bundler/setup'
require 'to_xls'

class Person
  attr_reader :first_name, :last_name

  def initialize(first_name, last_name)
    @first_name = first_name
    @last_name  = last_name
  end

  def name
    "#{first_name} #{last_name}"
  end
end

array = [Person.new("Andrzej", "Krzywda"), Person.new("Derek", "Hill")]

File.open("output.xls", "w") do |f|
  f.write(
    array.to_xls(
      :columns => [:first_name, :last_name, :name],
      :headers => ["First name", "Last name", "name"]
    )
  )
end
于 2013-03-24T16:55:58.647 に答える
0

axlsxを試しましたか?例のセクションによると、ジェネリック配列で動作するはずです。

于 2013-03-24T16:34:35.273 に答える