Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Win32::OLE - Excel chart location

by mickeyn (Priest)
on Oct 08, 2007 at 12:03 UTC ( #643443=perlquestion: print w/ replies, xml ) Need Help??
mickeyn has asked for the wisdom of the Perl Monks concerning the following question:

Hello fellow monks, I use Win32::OLE to create excel file.

I create a chart object within my sheet using:

$chart->Location(xlLocationAsObject, "sheet1");
works!

My question - how can I place the chart in a specific location within the sheet?
(x,y position or cell area are both good enough options).

Thanks,
Mickey

Comment on Win32::OLE - Excel chart location
Download Code
Re: Win32::OLE - Excel chart location
by technojosh (Priest) on Oct 08, 2007 at 14:39 UTC
    I haven't seen your code, but assuming you have a correct worksheet object, try something like:

    $yourWorksheetObject->Range("a1")->{Value}=$chart;

    (The "a1" range can be whatever you need, just there for example)

Re: Win32::OLE - Excel chart location
by bmann (Priest) on Oct 08, 2007 at 20:16 UTC
    You can't use a cell to position a chart. You can assign an (x, y) position.

    use warnings; use strict; use Win32::OLE qw(in); use Win32::OLE::Const 'Microsoft Excel'; use Win32::OLE::Const 'Microsoft Office .* Object Library'; my $excel = Win32::OLE->new('Excel.Application'); $excel->{Visible} = 1; my $xls = $excel->Workbooks->Add; my $chart = $excel->Charts->Add; $chart->Location( xlLocationAsObject, 'Sheet1' ); # find the chart (it can only be moved via 'shape') <- this can be the + hard part! # if it is the first chart, it will be named 'Chart 1'. # If there has already been n charts on that sheet it'll be named # 'Chart n+1' my $shape; foreach my $s ( in $excel->ActiveSheet->Shapes() ) { $shape = $s; last if $shape->type == msoChart; # msoChart == 3 } # move the chart to (0, 0) $shape->{Left} = 0; $shape->{Top} = 0;
    You can also move a chart relative amounts with IncrementLeft and IncrementTop.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://643443]
Approved by Corion
Front-paged by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (11)
As of 2015-07-07 07:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (87 votes), past polls