Membuat File Export dengan Format csv dan xls

Buat Project Baru
  1. Membuat Project Baru dengan nama blog
  2. $ rails new blog
    $ cd blog
  3. Membuat CRUD item menggunakan scaffold
  4. $ rails generate scaffold item name:string price:decimal stock:integer
  5. Membuat Database Baru untuk item
  6. $ rake db:create
    $ rake db:migrate
    $ rake db:seed
    $ rails s 
  7. Silahkan cek localhost:3000/items, untuk memastikan kalau CRUD sukses dibuat
Membuat File Export Format csv
  1. Masukkan Code di bawah ini pada config/application.rb
  2. require 'csv'
  3. Tambahkan Code di bawah ini pada index.html.erb
  4. <p>
    Download:
    <%= link_to "CSV", items_path(format: "csv") %> |
    <%= link_to "Excel", items_path(format: "xls") %>
    </p>
  5. Tambahkan Code di bawah ini pada items_controller.rb
  6. def index
    @items = Item.order(:name)
    respond_to do |format|
    format.html
    format.csv { send_data @items.to_csv }

    end
    end
  7. Tambahkan Code di bawah ini pada item.rb
  8. def self.to_csv(options = {})
    CSV.generate(options) do |csv|
    csv << column_names
    all.each do |item|
    csv << item.attributes.values_at(*column_names)
    end
    end
    end
  9. Lalu Matikan Server dan Hidupkan Kembali
  10. $ rails s 
  11. Tampilan yang telah di buat seperti ini
  12. Click link 'CSV' untuk download file format .csv
  13. Tampilan file format .csv seperti di bawah ini
Membuat File Export Format xls
  1. Masukkan Code di bawah ini pada config/initializers/mime_types.rb
  2. Mime::Type.register "application/xls", :xls
  3. Buat file dengan nama 'index.xls.erb' pada view/items/
  4. Lalu Isikan Code di bawah ini pada views/items/index.xls.erb
  5. <?xml version="1.0"?>
    <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
    xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:x="urn:schemas-microsoft-com:office:excel"
    xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
    xmlns:html="http://www.w3.org/TR/REC-html40">
    <Worksheet ss:Name="Sheet1">
    <Table>
    <Row>
    <Cell><Data ss:Type="String">Name</Data></Cell>
    <Cell><Data ss:Type="String">Price</Data></Cell>
    <Cell><Data ss:Type="String">Stock</Data></Cell>
    </Row>
    <% @items.each do |item| %>
    <Row>
    <Cell><Data ss:Type="String"><%= item.name %></Data></Cell>
    <Cell><Data ss:Type="Decimal"><%= item.price %></Data></Cell>
    <Cell><Data ss:Type="Integer"><%= item.stock %></Data></Cell>
    </Row>
    <% end %>
    </Table>
    </Worksheet>
    </Workbook>

  6. Tambahkan Code dibawah ini pada items_controller.rb
  7. def index
    @items = Item.order(:name)
    respond_to do |format|
    format.html
    format.csv { send_data @items.to_csv }
    format.xls
    end
    end
  8. Lalu Matikan Server dan Hidupkan Kembali
  9. $ rails s 
  10. Click link 'Excel' untuk download file format .xls

  11. Tampilan file format .xls seperti di bawah ini
Untuk Source Code : Disini

Comments

Popular posts from this blog

Seri Belajar Ruby on Rails Bagian 9 - Membuat Autentikasi dengan Devise

Seri Belajar Ruby on Rails Bagian 6 - Membuat Table & Dummy Data

Seri Belajar Ruby on Rails Bagian 7 - Memahami ActiveRecord