hi community,
ich möchte scriptgesteuert einige (torten-)diagramme mit excel erstellen und diese dann als gif speichern
das funktioniert so weit auch ganz gut
nur wie kann ich excel dazu bringen, die werte mit ins diagramm zu übernehmen?
mein code erzeugt nur diagramme ohne zahlen...
und kann man ein erzeugtes diagramm skalieren, bzw. kann man dessen grösse voreinstellen?
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
use strict;
use warnings;
use File::Spec;
use Cwd;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
$Win32::OLE::Warn = 3; # die on errors
my $excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application');
$excel->{Visible} = 0;
my $xls = File::Spec->catfile(cwd(), 'tmp.xls');
my $book2 = $excel->Workbooks->Open($xls);
my $sheet2 = $book2->Worksheets(1);
my @keys = ('a', 'b', 'c', 'd', 'e', 'f', 'g');
my @vals = (12, 23, 42, 13, 2, 33, 44);
my $title = qq(diagram1);
make_chart($title, \@keys, \@vals);
$book2->Close(0);
$excel->Quit();
sub make_chart($$$)
{
my ($title, $key, $val) = @_;
my $range = $sheet2->Range("A1:G2");
$range->{Value} = [$key, $val];
my $chart = $excel->Charts->Add;
$chart->{ChartType} = xlPie;
$chart->SetSourceData( { Source => $range, PlotBy => xlRows } );
$chart->{HasTitle} = 1;
$chart->ChartTitle->{Text} = $title;
# ???
# $chart->ApplyDataLabels->{ShowValue};
$chart->Location( { Where => xlLocationAsObject, Name => "Tabelle2" } ); #$sheet2->{Name});
$chart = $excel->ActiveChart;
my $file = File::Spec->catfile(cwd(), $title.qq(.gif));
$chart->Export($file, "GIF", 0);
}