soumyapanda has asked for the wisdom of the Perl Monks concerning the following question:

Hi i am tryng to place multiple charts in a singe excel sheet, but all the charts are overlapping on each other. Here is the code i am using.

$chart_one = [[ "Passed","100"],["Fail","20"] ]; $chart_two =[[ "Passed","80"],["Fail","30"] $chart_three =[[ "Passed","60"],["Fail","70"] $range_of_data_one = wb->ActiveSheet->Range("A2:B3"); $range_of_data_one->{Value} = $chart_one; $range_of_data_two = wb->ActiveSheet->Range("D2:E3"); $range_of_data_two->{Value} = $chart_two; $range_of_data_three = wb->ActiveSheet->Range("G2:H3"); $range_of_data_three->{Value} = $chart_three; $chart = wb->Charts->Add; $chart->SetSourceData($range_of_data_one, 2); $chart->{ChartType} = 70; $chart->Location(xlLocationAsObject, "Sheet 2"); $chart = wb->Charts->Add; $chart->SetSourceData($range_of_data_two, 2); $chart->{ChartType} = 70; $chart->Location( xlLocationAsObject, 'Sheet 2' ); $chart = wb->Charts->Add; $chart->SetSourceData($range_of_data_three, 2); $chart->{ChartType} = 70; $chart->Location( xlLocationAsObject, 'Sheet 2' );


Can you please help us in giving title to pie charts using Win32 ole

Replies are listed 'Best First'.
Re: Chart Positioning
by SuicideJunkie (Vicar) on Aug 05, 2011 at 12:36 UTC

    It looks to me like you're setting "location" to be identical for all the charts. Thus, it does not surprise me that they would overlap.

    Try putting them in different locations. Specifying cells for the location rather than just the sheet in general may help.

Re: Chart Positioning
by dasgar (Priest) on Aug 05, 2011 at 14:57 UTC

    My suggestion would be to open Excel, record a macro to create and/or position the chart, and then look at the source code of that macro, which will be in VB/VBscript. Then you'll just need to convert that syntax into Perl. Using that method, I can usually figure out how to create the Perl code to do just about anything that I want to do in Excel.

    I believe that there at least a few nodes that discusses how to go about doing this process (manually record a macro and convert the VB into Perl). Just do a super search.

    Give that a shot. If you get stuck, just come back and ask for help.