caxlsx gem: 生成的 excel 文件显示 #<Axlsx::Worksheet:0x0000559d7e487dc8>

caxlsx gem: generated excel file displays #<Axlsx::Worksheet:0x0000559d7e487dc8>

我有一个简单的例子,当生成 Excel 文件时包含 #<Axlsx::Worksheet:0x0000559d7e487dc8>。我希望 Excel 文件包含“可分配的钥匙及其房间”。

我正在使用 Rails 5.2, caxlsx -v 3.1.0 and caxlsx_rails -v 0.6.2

Rails 控制器:

def unassigned_door_keys_n_rooms
    @qry_rslts = Reports::UnassignedDoorKeysNRooms.qry_rslts
    @csv_rslts = Reports::UnassignedDoorKeysNRooms.export_as_csv

    respond_to do |format|
      format.xml { render xlsx: 'unassigned_door_keys_n_rooms', template: 'reports/unassigned_door_keys_n_rooms.xlsx.axlsx' }
      format.csv { send_data(@csv_rslts) }
    end
end

Rails 查看 unassigned_door_keys_n_rooms.xlsx.axlsx:

require 'axlsx'

p = Axlsx::Package.new
wb = p.workbook

s = wb.styles
header = s.add_style bg_color: 'E6E6E6', i: true, sz: 9, alignment: { horizontal: :left }

wb.add_worksheet do |sheet|
  sheet.add_row ["Keys Available to be Assigned And Their Rooms"], style: header
end

在模板文件中,您不需要 gem,手动创建包或最后序列化它 - caxlsx_rails 自动为您完成,您应该使用gem.

提供的辅助方法