質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1385閲覧

rubyXLに関して教えて頂きたいです。

tky31

総合スコア17

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2018/08/18 02:44

Railsのアプリケーション上でexcelを操作したいのですが、調べているとrubyXLというgemが出て来たので、ご質問させて頂きます。

https://github.com/weshatheleopard/rubyXL

rubyXLを使えばexcelの読み込みや、書き込みをRails上ですることが可能ということなのですが、
viewに読み込んだExcelをそのままの形式で表示することも可能なのでしょうか?

例えば、viewで表示するためには、inputでexcelファイルをアップロードして、そのアップロードファイルを表示するっていうイメージであってますでしょうか?

rubyXLに詳しい方いらっしゃいましたらお教えいただけたらと思います。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

rubyXLはExcelファイルのデータの読み書きはできますが、Railsで(ウェブブラウザで)Excelをそのまま表示、というのはそれ単体ではできないかと思います。そういうものではないので。

単純に、CSVファイルやJSONファイルの代わりにxlsxファイルが読み書きできる、くらいに考えればよいのではないでしょうか。

投稿2018/08/18 08:03

takahashim

総合スコア1877

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tky31

2018/08/21 11:12

返信遅くなり申し訳ございません ありがとうございます! もしご存知であればなのですが、下記の様なコードがあって、DBの内容をExcelにダウンロードしていて、そのExcelを変更してアップロードした場合に、Excelに追加や、変更があれば、データベースが反映される。というコードを書きたいのですが、どう実装すれば良いのかお教えいただけないでしょうか。。。 【View】 <h2>Import Students</h2> <%= form_tag import_students_path, multipart: true do %> <%= file_field_tag :file %> <%= submit_tag "Import" %> <% end %> 【コントローラー】 def import Student.import(params[:file]) redirect_to root_url, notice: "Products imported." end 【モデル】 def self.import(file) workbook = RubyXL::Parser.parse(file.path) worksheet = workbook[0] #初めのシートを読み込み (0..4).each do |i| cell_value = worksheet[1][i].value p cell_value end end 【ルーティング】 root to: 'students#index' resources :students do collection { post :import } end
takahashim

2018/08/21 14:19

うーん、それは結構大変そうな気がしますね…。 考え方としては、DBの内容をCSVファイルに出力してダウンロードさせ、それを修正したCSVファイルをアップロードしてもらったものをDBに反映させる、と同じような処理になります。が、修正を判別させるのは難しいので、苦労しない場合、まるっと削除してアップロードされた内容で全部上書きする、みたいな処理になりそうです。
nocomment

2018/08/28 01:45

自分なら Excel を Google Spreadsheet にアップロードさせて編集させます。 onEdit で追加、変更分かるので DB に反映できますし。 https://developers.google.com/apps-script/guides/triggers/events Excel が必要ならダウンロードボタンを用意し、Google Spreadsheet を CSV なり xlsx にしてダウンロードさせます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問