我使用Ruby版本1.9.3和Rails版本3.0.20与axlsx
ruby gem生成一个文件,其结构相当复杂,涉及cellmerging。宝石很棒,但是当我试图在一张纸上合并更多的1套单元时,我碰到了墙。
经验:
致电:
sheet.merge_cells("A1:A2")
sheet.merge_cells("B1:B2")
只有最后2个单元格(b1, b2
)合并(a1, a2
保持不变)。
答案 0 :(得分:5)
这是一个使用最新的2.0.1版本的axlsx gem合并两个单元格范围的示例。 关于axlsx,重要的是要理解它是一个稀疏的生成器。只有您专门添加到工作表中的单元格才能合并,设置样式,编辑等。在您的示例中,您只添加一行单元格,因此只能合并这些单元格。
如果使用
添加另一行sheet.add_row [nil, nil, nil, nil]
我希望您在打开Excel时可以找到按预期合并的单元格。
https://github.com/randym/axlsx/
require 'axlsx'
package = Axlsx::Package.new
package.workbook do |workbook|
workbook.add_worksheet name: 'merged_cells' do |sheet|
4.times do
sheet.add_row %w(a b c d e f g)
end
sheet.merge_cells "A1:A2"
sheet.merge_cells "B1:B2"
end
end
package.serialize 'merged_cells.xlsx'
最好的
randym
答案 1 :(得分:1)
这是我想要做的一个简单示例:
合并坐标为“A1:A2”和“B1:2”的单元格
我使用的代码如下:
4.times do
sheet.add_row %w[a b c d e]
end
sheet.merge_cells "A1:A2"
sheet.merge_cells "B1:B2"
这是我得到的结果的图像(左侧)以及我想得到的结果(右侧):
https://docs.google.com/file/d/0B9eWbU2sLebWdEIya1B5cUpya2c/edit?usp=sharing
正如您所看到的那样,只有最后一组坐标(“B1:B2”)被合并,而第一组坐标(“A1:A2”)没有变化。我尝试合并超过2组坐标,结果每次只合并最后一组。
答案 2 :(得分:0)
好的我解决了我的问题。这是宝石版的一个问题。我使用了axlsx 1.10。 在更新了gem和所有依赖项后,它们就像一个魅力。
抱歉浪费时间。