| 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 |