前の記事で課題だった部分を別のライブラリ(axlsx)を使って解決。 ただし、axlsxはエクセルの読み込みはできないため、都度書式等を作成することになる。 axlsxの日本語での情報が少ないので、参考になればと。 作成したコードの一部抜粋・改変のため、コピペでは動くかは確認していません。 機能 ・Rails でDBのデータをエクセルに帳票として出力 ・ファイルはダウンロードできる ・エクセルはxlsx形式 ・axlsxを利用 ・スタイルの定義はモジュール化 index.html.rb # coding: utf-8 # remote => true にするとこのままだと、ファイル選択ダイアログが表示されない。 <%= form_tag(url_for(:controller => 'export', :action => 'download'), :remote => false) do
roo - rubyforge プロジェクトページ OOo, Google Document, Excel(2007の新フォーマット対応)と、幅広いフォーマットへの対応を謳う、スプレッドシートのパーサ ドキュメントの更新が追い付いていないようですが、最新版は1.3.9 ファイルの新規作成には未対応 ファイルの更新は、Google Spreadsheetのみ対応 (セルに値を設定するメソッドまでは全てのフォーマットに対して実装されているようですが) xlsxなファイルを扱う必要があって、自前でなんとでもなりそうだったけど、既存のライブラリを見付けたのでメモ。 ちなみにxlsも対応していることになっていますが、Spreadsheetに丸投げなので、 xlsだけの対応で良い場合は、Spreadsheetを直接利用するべきだと思います。 (Spreadsheet方が高機能で、実装の筋も良い) また
こちらでも記載しています。 ●Excelから読み込む場合のサンプル1 require 'rubygems' require 'spreadsheet' xls = Spreadsheet.open('tests.xls', 'rb') #Excelファイルの読み込み sheet = xls.worksheet(0) #0番目つまり1番始めのsheetを読み込む #読み込みの開始が'0'から始まる。 print sheet[0,1] #実際のExcelでは、1行目の2列目の値を読み込み print "\n" #行単位で読み込む事も出来ます。 row = sheet.row(2) #3行目のデータを読み込み print row[2] #3行目の3列目のデータを読み込み print "\n" ●Excelから読み込む場合のサンプル2 require 'rubygems' require 'par
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く