環境:rails2.3.8、spreadsheet0.6.5.0
今回は、Ruby用のspreadsheetというのを使って、エクセルを出力したいと思います。
イメージとしては、エクセルのテンプレートファイルを作っておき、
出力ボタン押下時に、そのテンプレートを読込み、値を設定し、そのまま「ファイルを開く」ダイアログを出す感じで。
まずは、
gem install spreadsheet
現在のバージョンは0.6.5.0でした。
次に出力機能を付けるcontrollerに以下のソースを記述する。
def print
require 'spreadsheet'
#テンプレートファイルの取得
book = Spreadsheet.open("テンプレート.xls")
#最初のワークシートを設定
sheet1 = book.worksheet(0)
#ここで値をゴリゴリ設定する
sheet1[8,5] = "125"
sheet1[9,5] = "9"
#ダウンロードする為にtempファイルを作成
tmpfile = Tempfile.new ["テスト", ".xls"]
book.write tmpfile
tmpfile.open # reopen
send_data(
tmpfile.read,
)
tmpfile.close(true)
end
あとは、view側で上記のprintアクションを呼ぶようにするだけ。
0 件のコメント:
コメントを投稿