Schrift
[thread]7996[/thread]

Diagramme in Excel

Leser: 4


<< >> 10 Einträge, 1 Seite
bo
 2006-05-19 19:03
#66303 #66303
User since
2006-05-09
76 Artikel
BenutzerIn
[default_avatar]
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?

Code: (dl )
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);
}
renee
 2006-05-19 22:55
#66304 #66304
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich kenne mich zugegebenermaßen nicht so gut damit aus, aber vielleicht probierst Du mal verschiedene Sachen, die in diesen Links verwendet werden:

http://support.microsoft.com/default.aspx?scid=kb%3Bde%3B214797
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
bo
 2006-05-20 00:37
#66305 #66305
User since
2006-05-09
76 Artikel
BenutzerIn
[default_avatar]
danke für den tip, aber so richtig weiter bringt mich das leider auch nicht... ich werde mal versuchen, das irgendwie in excel mit einem vb-makro zu machen und dieses dann aus dem script aufzurufen...!?! wenn jemand irgendwelche erfahrungen mit sowas hat, ich bin um jede anregung dankbar...
um himmels willen... es ist freitag abend, was mach' ich eigentlich noch hier... ;)
lichtkind
 2006-05-20 01:54
#66306 #66306
User since
2004-03-22
5679 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
schau mal unter perl.com der aktuelle artikel erzählt von diagrammen mit perl leicht gemacht und für den excell teil gibts doch extra module dafür im CPAN:excel
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
bo
 2006-05-20 02:50
#66307 #66307
User since
2006-05-09
76 Artikel
BenutzerIn
[default_avatar]
@lichtkind
die excel module sind für mich nicht wirklich brauchbar...
aber durch den von dir erwähnten artikel bin ich auf das modul chart gestossen und das sieht auf den ersten blick echt klasse aus und ist auch gut dokumentiert (im gegensatz zu dem dem ganzen excel-kram) :-)
die diagramme sind zwar optisch nicht so ansprechend, wie die in excel, aber es gibt schlimmeres ;-)
ich werde mal es auf jeden fall mal testen
tausend dank
oje, jetzt ist's schon samstag und ich bin ja immer noch da ;-)
bo
 2006-05-20 02:54
#66308 #66308
User since
2006-05-09
76 Artikel
BenutzerIn
[default_avatar]
...und das mit den board-icons schau ich mir bei gelegenheit auch mal noch näher an ;)
lichtkind
 2006-05-20 21:09
#66309 #66309
User since
2004-03-22
5679 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
habe mal im vorigen workshop vortrag über ein "simple" excel modul gehört mit dem der vortragende gute erfahrung macht. konnte es aber in der liste eindeutig finden. simplewriter?
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
renee
 2006-05-20 21:20
#66310 #66310
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Weder CPAN:Spreadsheet::WriteExcel noch CPAN:Spreadsheet::SimpleExcel können Diagramme zeichnen. Das muss man mit CPAN:Win32::OLE machen...

Man kann bei CPAN:Spreadsheet::WriteExcel nur extern generierte Charts einbinden...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
lichtkind
 2006-05-20 21:55
#66311 #66311
User since
2004-03-22
5679 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
ja schon aber ich miente eher das man diese module für schritt 1 braucht: daten sammeln
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
bo
 2006-05-21 17:53
#66312 #66312
User since
2006-05-09
76 Artikel
BenutzerIn
[default_avatar]
ich muss die daten nicht aus excel auslesen, sondern nach dem extrahieren aus verschiedenen logs in excel eintragen... das eintragen und das prinzipielle erzeugen der diagramme funktioniert so weit auch.
mein einziges problem ist ja lediglich, excel dazu zu bringen, die für die diagramme zugrundeliegenden daten mit in das diagramm zu übernehmen, so dass man nicht nur die eigentliche tortengrafik sieht, sondern eben auch die werte.
aber ich habe mittlerweile einen, wenn auch etwas unschönen weg gefunden. da die anzahl an werten für ein diagramm immer gleich bleibt, habe ich mir eine zusätzliche excel-datei von hand angelegt, mit einem dummy-datensatz gefüllt und daraus ein diagramm erzeugt, so wie es aussehen soll (in excel selbst funktionierts ja). jetzt werden die datensätze vom script zuerst in die eigentliche tabelle eingetragen und danach jeder einzelne dieser datensätze in die andere tabelle in die zellen des dummy-datensatzes. das diagramm aktualisiert sich und ich kann es exportieren.
so habe ich zwar eine zusätzliche excel datei zur reinen diagrammerzeugung, die nur aus einem datensatz besteht, aber eine andere lösung habe ich bisher leider nicht gefunden. :(
trotzdem danke für eure hilfe
<< >> 10 Einträge, 1 Seite



View all threads created 2006-05-19 19:03.