2012-12-13 98 views
2

我使用PHPExcel并获得以下错误创建图表上:错误创建图表[phpexcel]

致命错误:调用一个成员函数cellExists()非对象上在/ opt/LAMPP/htdocs中/ scgcc/Classes/PHPExcel/Calculation.php on line 3241

这个错误发生在$ objWorksheet-> addChart($ chart);

下面

图表可变回报:

PHPExcel_Chart对象 ( [_name:PHPExcel_Chart:私人] => chart1 [_Worksheet:PHPExcel_Chart:私人] => [_title:PHPExcel_Chart:私人] => PHPExcel_Chart_Title对象 ( [_caption:PHPExcel_Chart_Title:私人] =>测试堆叠折线图表 [_layout:PHPExcel_Chart_Title:私人] => )

[_legend:PHPExcel_Chart:private] => PHPExcel_Chart_Legend Object 
    (
     [_position:PHPExcel_Chart_Legend:private] => tr 
     [_overlay:PHPExcel_Chart_Legend:private] => 
     [_layout:PHPExcel_Chart_Legend:private] => 
    ) 

[_xAxisLabel:PHPExcel_Chart:private] => 
[_yAxisLabel:PHPExcel_Chart:private] => PHPExcel_Chart_Title Object 
    (
     [_caption:PHPExcel_Chart_Title:private] => Value ($k) 
     [_layout:PHPExcel_Chart_Title:private] => 
    ) 

[_plotArea:PHPExcel_Chart:private] => PHPExcel_Chart_PlotArea Object 
    (
     [_layout:PHPExcel_Chart_PlotArea:private] => 
     [_plotSeries:PHPExcel_Chart_PlotArea:private] => Array 
      (
       [0] => PHPExcel_Chart_DataSeries Object 
        (
         [_plotType:PHPExcel_Chart_DataSeries:private] => lineChart 
         [_plotGrouping:PHPExcel_Chart_DataSeries:private] => stacked 
         [_plotDirection:PHPExcel_Chart_DataSeries:private] => 
         [_plotStyle:PHPExcel_Chart_DataSeries:private] => 
         [_plotOrder:PHPExcel_Chart_DataSeries:private] => Array 
          (
           [0] => 0 
           [1] => 1 
           [2] => 2 
           [3] => 3 
          ) 

         [_plotLabel:PHPExcel_Chart_DataSeries:private] => Array 
          (
           [0] => PHPExcel_Chart_DataSeriesValues Object 
            (
             [_dataType:PHPExcel_Chart_DataSeriesValues:private] => String 
             [_dataSource:PHPExcel_Chart_DataSeriesValues:private] => Worksheet!$B$1 
             [_formatCode:PHPExcel_Chart_DataSeriesValues:private] => 
             [_marker:PHPExcel_Chart_DataSeriesValues:private] => 
             [_pointCount:PHPExcel_Chart_DataSeriesValues:private] => 1 
             [_dataValues:PHPExcel_Chart_DataSeriesValues:private] => Array 
              (
              ) 

            ) 

           [1] => PHPExcel_Chart_DataSeriesValues Object 
            (
             [_dataType:PHPExcel_Chart_DataSeriesValues:private] => String 
             [_dataSource:PHPExcel_Chart_DataSeriesValues:private] => Worksheet!$C$1 
             [_formatCode:PHPExcel_Chart_DataSeriesValues:private] => 
             [_marker:PHPExcel_Chart_DataSeriesValues:private] => 
             [_pointCount:PHPExcel_Chart_DataSeriesValues:private] => 1 
             [_dataValues:PHPExcel_Chart_DataSeriesValues:private] => Array 
              (
              ) 

            ) 

           [2] => PHPExcel_Chart_DataSeriesValues Object 
            (
             [_dataType:PHPExcel_Chart_DataSeriesValues:private] => String 
             [_dataSource:PHPExcel_Chart_DataSeriesValues:private] => Worksheet!$D$1 
             [_formatCode:PHPExcel_Chart_DataSeriesValues:private] => 
             [_marker:PHPExcel_Chart_DataSeriesValues:private] => 
             [_pointCount:PHPExcel_Chart_DataSeriesValues:private] => 1 
             [_dataValues:PHPExcel_Chart_DataSeriesValues:private] => Array 
              (
              ) 

            ) 

           [3] => PHPExcel_Chart_DataSeriesValues Object 
            (
             [_dataType:PHPExcel_Chart_DataSeriesValues:private] => String 
             [_dataSource:PHPExcel_Chart_DataSeriesValues:private] => Worksheet!$E$1 
             [_formatCode:PHPExcel_Chart_DataSeriesValues:private] => 
             [_marker:PHPExcel_Chart_DataSeriesValues:private] => 
             [_pointCount:PHPExcel_Chart_DataSeriesValues:private] => 1 
             [_dataValues:PHPExcel_Chart_DataSeriesValues:private] => Array 
              (
              ) 

            ) 

          ) 

         [_plotCategory:PHPExcel_Chart_DataSeries:private] => Array 
          (
           [0] => PHPExcel_Chart_DataSeriesValues Object 
            (
             [_dataType:PHPExcel_Chart_DataSeriesValues:private] => String 
             [_dataSource:PHPExcel_Chart_DataSeriesValues:private] => Worksheet!$A$2:$A$6 
             [_formatCode:PHPExcel_Chart_DataSeriesValues:private] => 
             [_marker:PHPExcel_Chart_DataSeriesValues:private] => 
             [_pointCount:PHPExcel_Chart_DataSeriesValues:private] => 5 
             [_dataValues:PHPExcel_Chart_DataSeriesValues:private] => Array 
              (
              ) 

            ) 

          ) 

         [_smoothLine:PHPExcel_Chart_DataSeries:private] => 
         [_plotValues:PHPExcel_Chart_DataSeries:private] => Array 
          (
           [0] => PHPExcel_Chart_DataSeriesValues Object 
            (
             [_dataType:PHPExcel_Chart_DataSeriesValues:private] => Number 
             [_dataSource:PHPExcel_Chart_DataSeriesValues:private] => Worksheet!$B$2:$B$6 
             [_formatCode:PHPExcel_Chart_DataSeriesValues:private] => 
             [_marker:PHPExcel_Chart_DataSeriesValues:private] => 
             [_pointCount:PHPExcel_Chart_DataSeriesValues:private] => 5 
             [_dataValues:PHPExcel_Chart_DataSeriesValues:private] => Array 
              (
              ) 

            ) 

           [1] => PHPExcel_Chart_DataSeriesValues Object 
            (
             [_dataType:PHPExcel_Chart_DataSeriesValues:private] => Number 
             [_dataSource:PHPExcel_Chart_DataSeriesValues:private] => Worksheet!$C$2:$C$6 
             [_formatCode:PHPExcel_Chart_DataSeriesValues:private] => 
             [_marker:PHPExcel_Chart_DataSeriesValues:private] => 
             [_pointCount:PHPExcel_Chart_DataSeriesValues:private] => 5 
             [_dataValues:PHPExcel_Chart_DataSeriesValues:private] => Array 
              (
              ) 

            ) 

           [2] => PHPExcel_Chart_DataSeriesValues Object 
            (
             [_dataType:PHPExcel_Chart_DataSeriesValues:private] => Number 
             [_dataSource:PHPExcel_Chart_DataSeriesValues:private] => Worksheet!$D$2:$D$6 
             [_formatCode:PHPExcel_Chart_DataSeriesValues:private] => 
             [_marker:PHPExcel_Chart_DataSeriesValues:private] => 
             [_pointCount:PHPExcel_Chart_DataSeriesValues:private] => 5 
             [_dataValues:PHPExcel_Chart_DataSeriesValues:private] => Array 
              (
              ) 

            ) 

           [3] => PHPExcel_Chart_DataSeriesValues Object 
            (
             [_dataType:PHPExcel_Chart_DataSeriesValues:private] => Number 
             [_dataSource:PHPExcel_Chart_DataSeriesValues:private] => Worksheet!$E$2:$E$6 
             [_formatCode:PHPExcel_Chart_DataSeriesValues:private] => 
             [_marker:PHPExcel_Chart_DataSeriesValues:private] => 
             [_pointCount:PHPExcel_Chart_DataSeriesValues:private] => 5 
             [_dataValues:PHPExcel_Chart_DataSeriesValues:private] => Array 
              (
              ) 

            ) 

          ) 

        ) 

      ) 

    ) 

[_plotVisibleOnly:PHPExcel_Chart:private] => 1 
[_displayBlanksAs:PHPExcel_Chart:private] => 0 
[_topLeftCellRef:PHPExcel_Chart:private] => A13 
[_topLeftXOffset:PHPExcel_Chart:private] => 0 
[_topLeftYOffset:PHPExcel_Chart:private] => 0 
[_bottomRightCellRef:PHPExcel_Chart:private] => H30 
[_bottomRightXOffset:PHPExcel_Chart:private] => 10 
[_bottomRightYOffset:PHPExcel_Chart:private] => 10 

请回复我,它很紧急。

感谢

+1

我一直错误的解决问题,而不是图表没有显示你的所有单元格引用中某处的任何值 – DeveloperPHP

+0

,你引用的是没有按小区在PHPExcel模型中不存在 –

+1

非常感谢您的回复,我一直在解决这个问题。但是现在图表线条并未出现,因为您可以参考截图@ http://uvresins.net/images/xls.png 和我的图表变量与上面提到的相同。我不知道我错过了什么。你可以给我任何解决方案/提示。请帮忙。 – DeveloperPHP

回答

2

我的代码是下面,你可以看到下面我使用的键部分,因为我是从生成数据库阵列值。

我正在显示代码的简化形式,实际上实际的代码有太多未知的东西4 u。我正在生成5张工作簿。

$ objWorksheet = $ objPHPExcel-> getActiveSheet();

$ objWorksheet-> fromArray( 阵列 (

[0] => Array 
    (
     [0] => 
     [1] => 12/2011 
     [2] => 01/2012 
     [3] => 02/2012 
    ) 

[1] => Array 
    (
     [0] => QATAR 
     [1] => 102.77 
     [2] => 100 
     [3] => 102.13 
    ) 

[2] => Array 
    (
     [0] => SAUDI ARABIA 
     [1] => 102.74 
     [2] => 100 
     [3] => 98.22 
    ) 

[3] => Array 
    (
     [0] => KUWAIT 
     [1] => 94.82 
     [2] => 100 
     [3] => 102.28 
    ) 

[4] => Array 
    (
     [0] => U.A.E. 
     [1] => 101.22 
     [2] => 100 
     [3] => 99.94 
    ) 

[5] => Array 
    (
     [0] => OMAN 
     [1] => 101.73 
     [2] => 100 
     [3] => 100.42 
    ) 

) );

$ dataseriesLabels =(

[0] => new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$B$1,null, 1) 
[1] => new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1,null, 1) 
[2] => new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$D$1,null, 1) 

);

$ xAxisTickValues =(

[0] =>新PHPExcel_Chart_DataSeriesValues( '字符串',“工作表!$ A $ 2:$ A $ 6',null,5) );

$ dataSeriesValues =阵列 (

[0] => new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$B$2:$B$6',null,5) 
[1] => new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$6,null,5) 
[2] => new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$D$2:$D$6,null,5) 

);

$系列=新PHPExcel_Chart_DataSeries(

PHPExcel_Chart_DataSeries::TYPE_LINECHART,  
PHPExcel_Chart_DataSeries::GROUPING_STACKED,  
range(0, count($dataSeriesValues)-1),   
$dataseriesLabels,        
$xAxisTickValues,        
$dataSeriesValues        

);

$ plotarea = new PHPExcel_Chart_PlotArea(null,array($ series));

$ legend = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend :: POSITION_TOPRIGHT,null,false);

$ title = new PHPExcel_Chart_Title('Test Stacked Line Chart'); $ yAxisLabel = new PHPExcel_Chart_Title('Value($ k)');

$图=新PHPExcel_Chart( 'chart1',//名 $标题,标题// $ 传说,传说// $ plotarea,// plotArea 真,// plotVisibleOnly 0,// displayBlanksAs null,// xAxisLabel $ yAxisLabel // yAxisLabel );

$ chart-> setTopLeftPosition('A7'); $ chart-> setBottomRightPosition('H20');

$ objWorksheet-> addChart($ chart);

$ objWriter = PHPExcel_IOFactory :: createWriter($ objPHPExcel,'Excel2007'); $ objWriter-> setIncludeCharts(TRUE);

请告诉我,M I缺少什么.....