Объединить несколько ячеек нескольких рядов, используя рельсы Axlsx - PullRequest
0 голосов
/ 12 июня 2018

У меня есть приложение rails, где я пытаюсь экспортировать некоторые данные в формате Excel.В моем листе Excel я хочу объединить несколько ячеек динамического ряда.Я пытаюсь следовать этому ответу, но он дает мне ошибку.После ответа, данного в этом решении, я создал файл excel.rb в моем каталоге config/initializers и вставил этот код

module Axlsx
  class Worksheet
    def merge_last_row(options={})
       last_row = rows.last.index + 1
       first_col,last_col = options[:columns]
       if first_col && last_col
         merge_cells "#{first_col}#{last_row}:#{last_col}#{last_row}"
       else
         merge_cells sheet.rows.last
       end
       rows.last.style = style if options[:style]
    end
    def fill_columns(column_count,options={})
      row_data = options[:row_data] || []
      (column_count - row.count).times do 
        row_data << nil
      end
      add_row row_data
    end
  end
end

, а затем в мой файл report.xls.axlsx у меня есть следующий код

wb = xlsx_package.workbook
xlsx_package.use_autowidth = true

wb.add_worksheet(name: "gold_sheet") do |sheet|
    @gold_live_console.each do |item|
        section = item.room.section.try(:name)
         time = item.bingning_inserted_at.strftime("%Y-%m-%d - %l:%M %p")
        if section.present?
            sheet.add_row %w(Date)
            sheet.merge_last_row columns:["A","E"]
            sheet.add_row [time]
            sheet.add_row %w(  Section  )
            sheet.add_row [item.room.section.try(:name)]
            sheet.add_row %w(  Gra_Name  )
            sheet.add_row [item.room.gra_employee.try(:full_name)]
            sheet.add_row %w(Room# Credit Beginning_Status PM_Status Notes)
            sheet.add_row [item.room_location, item.room_credit, item.beginning_status]
            sheet.add_row()
        end
    end
end

Когда я запускаю это, это дает мне ActionView::Template::Error (undefined method merge_last_row' ошибку

Я хочу объединить все столбцы от А до Е для строки с текстом Дата

Как мне использоватьвышеуказанный метод в моем файле axlsx?Я новичок в ruby, так что извините, если моя ошибка слишком глупа, но кто-нибудь может указать мне, что я делаю неправильно?

...