rails6 EXCELファイルを作成する

rails6 EXCELファイルを作成する

rails6で、EXCELファイルを作成する手順を記述してます。railsのバージョンは6.1.0です。

環境

  • OS ubuntu20.10
  • ruby 2.7.2
  • rails 6.1.0
  • Postgresql 13.1 (dockerで構築)

事前準備

Gemfileに、EXCELを作成するため、以下を追加します。

ダミーデータを作るのにFakerを使用するので、以下も追加してます。

インストールします。

scaffoldで、テーブルを作成しておきます。

samplesテーブルが作成されます。

データ作成

Fakerからダミーデータを「db」フォルダ配下の「seeds.rb」に記述して作成します。

実行します。

実行結果 テーブル「samples」

コントローラー編集

作成された「app/controllers」内の「samples_controller.rb」を以下のように編集します。

ダウンロードするEXCELのファイルの名前を変更する場合は、filenameに任意の名前を指定します。

テンプレート作成

「app/views/samples」フォルダ内にEXCLEのテンプレートとなる「index.xlsx.axlsx」を作成します。

シート名は、以下の箇所で指定できます。

ダウンロードリンク作成

最後に、viewにEXCELダウンロード用のリンクを作成します。

ダウンロード

実際にダウンロードして確認してみます。

ブラウザから http://プライベートIP or サーバーアドレス:3000/samples にアクセスします。

EXCELダウンロードのリンクをクリックして、EXCELをダウンロードします。

「samples.xlsx」がダウンロードされます。

確認すると、EXCELファイルにデータが書き込みこまれていることが確認できます。