Posted on 2005-04-14 18:02:06-07 by marfolarfo in response to 332
Re: Help with Multiple charts using chartex
Create a demo402.xls file that contains this starting at A1 worksheet2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 It also contains a chart sheet named chart1. It charts this data as a bar graph using A1 as the chart label , A2-A11 as the x-axis, and B2-B11 as the data. Do the same for demo401.xls. It shall contain the same thing except for A1 which should say worksheet1. Run chartex.pl demo401.xls Rename chart01.bin to demo401.bin Run chartex.pl demp402.xls Rename chart01.bin to demo402.bin Run the following code. The resulting spreadsheet will have two charts with identical labels and data; the data and label from the first chart generated.
#!/usr/bin/perl -w use strict; use Spreadsheet::WriteExcel; my $workbook = Spreadsheet::WriteExcel->new("demo4.xls"); my $worksheet1 = $workbook->add_worksheet(); my $worksheet2 = $workbook->add_worksheet(); my $chart1 = $workbook->add_chart_ext('demo401.bin', 'Chart1'); my $chart2 = $workbook->add_chart_ext('demo402.bin', 'Chart2'); # Link the chart to the worksheet data using a dummy formula. $worksheet1->store_formula('=Sheet1!A2'); $worksheet1->store_formula('=Sheet2!A2'); # Add some extra formats to cover formats used in the charts. $workbook->add_format(color => 1); $workbook->add_format(color => 2); $workbook->add_format(color => 3); $workbook->add_format(color => 4); # Add all other formats (if any). # Add data to range that the chart refers to. my @nums = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9); my @squares = map {$_**2} @nums; my @cubes = map {$_**3} @nums; $worksheet1->write(0, 0, "worksheet1" ); $worksheet1->write_col('A2', \@nums ); $worksheet1->write_col('B2', \@squares); $worksheet2->write(0, 0, "worksheet2" ); $worksheet2->write_col('A2', \@nums ); $worksheet2->write_col('B2', \@cubes );
Direct Responses: 341 | Write a response
Perl Weekly newsletter
A free weekly newsletter for people who are busy to read all the blogs. click here to check it out.