Method: XlsxWriter::Worksheet#merge_range

Defined in:
ext/xlsxwriter/worksheet.c

#merge_range(range, value = "", format = nil) ⇒ self #merge_range(cell_from, cell_to, value = "", format = nil) ⇒ self #merge_range(row_from, col_from, row_to, col_to, value = "", format = nil) ⇒ self

Merges range, setting string value with format.

ws.merge_range('A1:D5')
ws.merge_range('A1', 'D5', 'Merged cells')
ws.merge_range(0, 0, 4, 3)

Overloads:

  • #merge_range(range, value = "", format = nil) ⇒ self

    Returns:

    • (self)
  • #merge_range(cell_from, cell_to, value = "", format = nil) ⇒ self

    Returns:

    • (self)
  • #merge_range(row_from, col_from, row_to, col_to, value = "", format = nil) ⇒ self

    Returns:

    • (self)


617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
# File 'ext/xlsxwriter/worksheet.c', line 617

VALUE
worksheet_merge_range_(int argc, VALUE *argv, VALUE self) {
  char *str = "";
  lxw_format *format = NULL;
  lxw_col_t col1, col2;
  lxw_row_t row1, row2;
  VALUE workbook = rb_iv_get(self, "@workbook");

  rb_check_arity(argc, 1, 6);
  int larg = extract_range(argc, argv, &row1, &col1, &row2, &col2);

  if (larg < argc) {
    str = StringValueCStr(argv[larg]);
    ++larg;
  }

  if (larg < argc) {
    format = workbook_get_format(workbook, argv[larg]);
    ++larg;
  }

  struct worksheet *ptr;
  Data_Get_Struct(self, struct worksheet, ptr);

  worksheet_merge_range(ptr->worksheet, row1, col1, row2, col2, str, format);
  return self;
}