行を作成するロジックを含む axlsx ファイルがあります。そこに、特定の条件が満たされたときに、最後に作成されたセルをマージしたいというチェックがあります。これどうやってするの?
セルを結合する方法を私が見た唯一の方法は、結合するセルを次のように指定することです。
sheet.merge_cells "A2:B2"
しかし、動的シートがある場合、作成された最後の行のセルを結合するにはどうすればよいですか?
行を作成するロジックを含む axlsx ファイルがあります。そこに、特定の条件が満たされたときに、最後に作成されたセルをマージしたいというチェックがあります。これどうやってするの?
セルを結合する方法を私が見た唯一の方法は、結合するセルを次のように指定することです。
sheet.merge_cells "A2:B2"
しかし、動的シートがある場合、作成された最後の行のセルを結合するにはどうすればよいですか?
Axlsx merge_cells は、例のように文字列、またはセルの配列を受け入れます。その範囲で、行、列、およびそれらのセル コレクションを使用して検索し、結合するセルの配列を渡すことができます。
何かのようなもの:
sheet.merge_cells sheet.rows.last.cells
参考までに、Worksheet#merge_cell に関するドキュメントを次に示します。
# Creates merge information for this worksheet.
# Cells can be merged by calling the merge_cells method on a worksheet.
# @example This would merge the three cells C1..E1 #
# worksheet.merge_cells "C1:E1"
# # you can also provide an array of cells to be merged
# worksheet.merge_cells worksheet.rows.first.cells[(2..4)]
# #alternatively you can do it from a single cell
# worksheet["C1"].merge worksheet["E1"]
# @param [Array, string] cells
def merge_cells(cells)
merged_cells.add cells
end