Ruby AXLSX gem合并了一组单元格

我正在使用Ruby版本1.9.3和Rails版本3.0.20与axlsx ruby gem来生成一个文件,它有一个相当复杂的结构,涉及到cellmerging。 这个gem很棒,但是当我试图在一张纸上合并更多的一组单元时,我碰到了墙壁。

经验:

打电话后:

 sheet.merge_cells("A1:A2") sheet.merge_cells("B1:B2") 

只有最后2个单元格( b1, b2 )被合并( a1, a2保持不变)。

下面是一个使用最新的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(abcdefg) end sheet.merge_cells "A1:A2" sheet.merge_cells "B1:B2" end end package.serialize 'merged_cells.xlsx' 

最好

randym

这是我想要做的一个简单的例子:

合并坐标为“A1:A2”和“B1:2”的单元格

我使用的代码如下:

 4.times do sheet.add_row %w[abcde] 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组坐标,每次只合并最后一组。

好的,我解决了我的问题。 这是gem版本的问题。 我使用了axlsx 1.10。 更新gem和所有依赖项后,它们都像一个魅力。

对不起,浪费时间。