ruby Rails axlsx_rails gem.在现有行之间插入新行

7hiiyaii  于 5个月前  发布在  Ruby
关注(0)|答案(2)|浏览(50)

我使用基于axlsxaxlsx_rails gem生成.xlsx文件。我将行作为数组接收,并像这样绘制它们:

# 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

字符串
然后我需要插入一个新的行之间,例如第2和第3行。我想知道我如何才能实现这一点?

zbsbpyhn

zbsbpyhn1#

似乎应该有一个更好的方法来做到这一点,但你可以添加一行,删除它,并将其插入到其他地方:

sheet.add_row %w{this row is inserted}
sheet.rows.insert 2, sheet.rows.delete_at(sheet.rows.length-1)

字符串
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)


你也可以使用第一个. YMMV和复杂的前缀。
更多docs在这里

qvtsj1bj

qvtsj1bj2#

sheet.rows.insert [index]sheet.rows.delete(sheet.rows.last)#index是要插入ont的行

相关问题