Kamis, 03 November 2016

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

2 komentar:

  1. mau tanya dong kalo mau buat perhiungan stock gimana ya ??

    BalasHapus