Sha256: 89bcb0663b1a1bef53ec48219ae883fc15b33f37e0ea65d6c8a170b6ca313103

Contents?: true

Size: 1.08 KB

Versions: 53

Compression:

Stored size: 1.08 KB

Contents

require 'stringio'
require 'spreadsheet'

module Para
  module Exporter
    class Xls < Table
      protected

      def extension
        '.xls'
      end

      def name
        'export'
      end

      def mime_type
        'application/vnd.ms-excel'
      end

      def binary?
        true
      end

      def generate
        generate_workbook do |workbook|
          sheet = workbook.create_worksheet

          # Add headers
          sheet.row(0).concat headers

          # Add content rows
          resources.each_with_index do |resource , index|
            sheet.row(index + 1).concat row_for(resource)
          end
        end
      end

      def generate_workbook(&block)
        workbook = Spreadsheet::Workbook.new

        block.call(workbook)

        buffer = StringIO.new
        workbook.write(buffer)
        buffer.rewind
        buffer.read
      end

      def fields
        fail NotImplementedError
      end

      def encode(string)
        string.presence && string.to_s.encode('UTF-8', invalid: :replace, undef: :replace, replace: '?')
      end
    end
  end
end

Version data entries

53 entries across 53 versions & 1 rubygems

Version Path
para-0.12.5 lib/para/exporter/xls.rb
para-0.12.4 lib/para/exporter/xls.rb
para-0.12.3 lib/para/exporter/xls.rb
para-0.12.2 lib/para/exporter/xls.rb
para-0.12.1 lib/para/exporter/xls.rb
para-0.12.0 lib/para/exporter/xls.rb
para-0.11.4 lib/para/exporter/xls.rb
para-0.11.3 lib/para/exporter/xls.rb
para-0.11.2 lib/para/exporter/xls.rb
para-0.11.1 lib/para/exporter/xls.rb
para-0.11.0 lib/para/exporter/xls.rb
para-0.10.0 lib/para/exporter/xls.rb
para-0.9.4 lib/para/exporter/xls.rb
para-0.9.3.3 lib/para/exporter/xls.rb
para-0.9.3.2 lib/para/exporter/xls.rb
para-0.9.3.1 lib/para/exporter/xls.rb
para-0.9.2 lib/para/exporter/xls.rb
para-0.9.0 lib/para/exporter/xls.rb
para-0.8.15 lib/para/exporter/xls.rb
para-0.8.14 lib/para/exporter/xls.rb