我gem 'axlsx_rails'
在 Rails 应用程序中使用。
我想对单元格(A 列的第 2 行到第 23 行)进行排序,作为创建选项卡的最后一步。
这是我的代码:
wb.add_worksheet(:name => "Cost") do |sheet|
sheet.page_setup.set :orientation => :portrait
sheet.add_row ['Seq', 'Category', 'Remarks', 'Amount', 'Notes'], :style => [header_cell, header_cell, header_cell, header_cell, header_cell]
@costproject.costestimates.each do |costestimate|
sheet.add_row [costestimate.costcat.position, costestimate.costcat.category_name, costestimate.costcat.categorydesc, number_with_precision(costestimate.amount, :precision => 2), costestimate.notes], :style=> [intgr,nil,nil,money]
end
sheet.add_row [nil, 'TOTAL', nil, "=SUM(D2:D23)"]
sheet.column_widths 5, 35, 25, 25
cells.sort ?????
end
我认为这是可以做到的。那正确吗?如果是,如何?我用什么代替cells.sort ?????
?
谢谢你的帮助!
更新1:
感谢 emcanes,我在 add_row 期间对记录进行了排序:
sheet.add_row ['Seq', 'Category', 'Remarks', 'Amount', 'Notes'], :style => [header_cell, header_cell, header_cell, header_cell, header_cell]
@costproject.costestimates.includes(:costcat).order("costcats.position").each do |ce|
sheet.add_row [ce.costcat.position, ce.costcat.category_name, ce.costcat.categorydesc, number_with_precision(ce.amount, :precision => 2), ce.notes], :style=> [intgr,border,border,money,border]
end
我还是想知道AXSLX能不能用cells.sort
??