Sha256: 5efc8e76894ff28ba6266f9a3a0038afeefbe3159be18323a898b916ab3567cd

Contents?: true

Size: 889 Bytes

Versions: 1

Compression:

Stored size: 889 Bytes

Contents

# frozen_string_literal: true

require 'axlsx'
module DocParser
  # The XLSXOutput class generates Microsoft Excel compatible .xlsx files
  # using the great axslx library
  # @see Output
  class XLSXOutput < Output
    # @!visibility private
    def open_file
      @package = Axlsx::Package.new
      @package.workbook.date1904 = false # Fix for OS X
      @package.use_shared_strings = true # Fix for Numbers
      @sheet = @package.workbook.add_worksheet
      @file.close
    end

    def header
      write_row @header
    end

    def write_row(row)
      @sheet.add_row row
    end

    def footer
      unless @header.nil?
        @sheet.add_table "A1:#{@sheet.cells.last.r}", name: 'Data'
      end
      @package.serialize @filename
    end

    def rowcount
      if @header.nil?
        @sheet.rows.length
      else
        @sheet.rows.length - 1
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
docparser-0.3.0 lib/docparser/output/xlsx_output.rb