#!/usr/bin/perl ####################################################################### # # A simple example of how to use the Excel::Writer::XLSX module to # add shapes (objects and top/bottom connectors) to an Excel xlsx file. # # reverse ('(c)'), May 2012, John McNamara, jmcnamara@cpan.org # use strict; use warnings; use Excel::Writer::XLSX; my $workbook = Excel::Writer::XLSX->new( 'shape5.xlsx' ); my $worksheet = $workbook->add_worksheet(); my $s1 = $workbook->add_shape( type => 'ellipse', width => 60, height => 60 ); $worksheet->insert_shape( 'A1', $s1, 50, 50 ); my $s2 = $workbook->add_shape( type => 'plus', width => 20, height => 20 ); $worksheet->insert_shape( 'A1', $s2, 250, 200 ); # Create a connector to link the two shapes. my $cxn_shape = $workbook->add_shape( type => 'bentConnector3' ); # Link the start of the connector to the right side. $cxn_shape->set_start( $s1->get_id() ); $cxn_shape->set_start_index( 4 ); # 4th connection pt, clockwise from top(0). $cxn_shape->set_start_side( 'b' ); # r)ight or b)ottom. # Link the end of the connector to the left side. $cxn_shape->set_end( $s2->get_id() ); $cxn_shape->set_end_index( 0 ); # clockwise from top(0). $cxn_shape->set_end_side( 't' ); # t)top. $worksheet->insert_shape( 'A1', $cxn_shape, 0, 0 ); __END__