如何在轨道上的红宝石中添加axlsx行中的单元格

时间:2017-02-25 14:01:09

标签: ruby-on-rails ruby axlsx

我在aslsx中创建了一行,现在我想在现有行中添加单元格。

wb = xlsx_package.workbook
wb.add_worksheet(name: "Buttons") do |sheet|

sheet.add_row ['Categories:']
@categories.each do |category|
  // Here I want to add this category name existing row
end

如果我错了,请纠正我

1 个答案:

答案 0 :(得分:1)

好吧,如果你想将所有类别添加到同一行,这应该有效:

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

categories = ['Categories:'] + @categories.pluck(:name)

wb.add_worksheet(name: "Buttons") do |sheet|
  sheet.add_row categories
end

我假设您的Category模型有一个名为name的属性,如果没有,只需将:name更改为更合适的属性。方法add_row接收带有值的数组,并将所有内容从数组写入当前行,因此您需要首先使用类别的名称填充数组。然后,您可以将数组传递给方法add_row,它将使用类别填充excel中的整行。

Here您可以找到有关pluck方法的更多信息。或者只在rails控制台中,尝试Category.all.pluck(:id),您将获得一个填充了所有类别ID的数组。