File: shape4.pl

package info (click to toggle)
libexcel-writer-xlsx-perl 0.79-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 11,716 kB
  • ctags: 930
  • sloc: perl: 18,380; makefile: 40
file content (56 lines) | stat: -rw-r--r-- 1,406 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/perl

#######################################################################
#
# A simple example of how to use the Excel::Writer::XLSX module to
# demonstrate stenciling in 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( 'shape4.xlsx' );
my $worksheet = $workbook->add_worksheet();

$worksheet->hide_gridlines( 2 );

my $type  = 'rect';
my $shape = $workbook->add_shape(
    type   => $type,
    width  => 90,
    height => 90,
);

for my $n ( 1 .. 10 ) {

    # Change the last 5 rectangles to stars. Previously inserted shapes stay
    # as rectangles.
    $type = 'star5' if $n == 6;
    $shape->set_type( $type );
    $shape->set_text( "$type $n" );
    $worksheet->insert_shape( 'A1', $shape, $n * 100, 50 );
}


my $stencil = $workbook->add_shape(
    stencil => 1,                    # The default.
    width   => 90,
    height  => 90,
    text    => 'started as a box',
);
$worksheet->insert_shape( 'A1', $stencil, 100, 150 );

$stencil->set_stencil( 0 );
$worksheet->insert_shape( 'A1', $stencil, 200, 150 );
$worksheet->insert_shape( 'A1', $stencil, 300, 150 );

# Ooops!  Changed my mind.  Change the rectangle to an ellipse (circle),
# for the last two shapes.
$stencil->set_type( 'ellipse' );
$stencil->set_text( 'Now its a circle' );


__END__