Vah*_*yan 4 ruby ruby-on-rails spreadsheet axlsx
我正在使用基于 的 gem生成.xlsx文件。我接收行作为数组并像这样绘制它们:axlsx_railsaxlsx
# Workbook, sheet and styles creations left...
data["config"].each do |item|
sheet.add_row item.each_with_index.map{|row, index| row["value"]}, :style => row_style
end
Run Code Online (Sandbox Code Playgroud)
然后我需要在第二行和第三行之间插入一个新行。我想知道我怎样才能实现这一目标?
似乎应该有更好的方法来做到这一点,但您可以添加一行,删除它,然后将其插入到其他地方:
sheet.add_row %w{this row is inserted}
sheet.rows.insert 2, sheet.rows.delete_at(sheet.rows.length-1)
Run Code Online (Sandbox Code Playgroud)
sheet.rows.insert需要一个Axlsx::Row对象。您可以单独创建一个,但初始化程序需要一个工作表参数,并且它会隐式地将行添加到工作表中:
new_row = Axlsx::Row.new sheet, %w{this row is inserted}
sheet.rows.last # => returns new_row
# so we still have to do the same thing
sheet.rows.insert 2, sheet.rows.delete_at(sheet.rows.length-1)
Run Code Online (Sandbox Code Playgroud)
您也可以使用第一个。YMMV 具有复杂的工作表。