1 package Excel::Template::Element::MergeRange;
7 @ISA = qw(Excel::Template::Element::Cell);
9 use Excel::Template::Element::Cell;
10 use Excel::Template::Element::Range;
17 my $ref_name = $context->resolve($self, 'REF');
19 my @refs = $context->get_all_references( $ref_name );
21 || die "You must specify a ref for MERGE_RANGE";
23 my $range = Excel::Template::Element::Range->_join_refs(@refs);
26 # we need to copy the current format
27 # because Spreadsheet::WriteExcel will
28 # mark any format used in a merged cell
29 # as being specifically for a merged cell
30 # and therefore not usable elsewhere.
32 my $old_format = $context->active_format;
35 while ( my ($k, $v) = each %$self ) {
36 $values{$k} = $context->resolve( $self, $k );
39 # force is_merged on here to differentiate the formats
40 $values{is_merged} = 1;
42 my $format = $context->format_object->copy(
43 $context, $old_format, %values,
45 $context->active_format($format);
47 $context->active_worksheet->merge_range(
49 $self->_get_text($context),
53 $context->active_format($old_format);
63 Excel::Template::Element::MergeRange - Excel::Template::Element::MergeRange
67 To merge a range of cells in a spreadsheet
75 L<ELEMENT|Excel::Template::Element>
79 This will merge a range of cells.
90 <merge_range ref="foo">Text to insert into merged range</merge_range>
104 <merge_range ref="foo">Text to insert into merged range</merge_range>
111 Stevan Little (stevan.little@iinteractive.com)