2

私はPHPExcelを使用しており、チャートの作成時にエラーを下回っています:

致命的なエラー: 3241 行目の /opt/lampp/htdocs/scgcc/Classes/PHPExcel/Calculation.php の非オブジェクトに対するメンバー関数 cellExists() の呼び出し

このエラーは $objWorksheet->addChart($chart); で発生しています。

以下のチャート変数リターン:

PHPExcel_Chart オブジェクト ( [_name:PHPExcel_Chart:private] => chart1 [_worksheet:PHPExcel_Chart:private] => [_title:PHPExcel_Chart:private] => PHPExcel_Chart_Title オブジェクト ( [_caption:PHPExcel_Chart_Title:private] => 積み上げ折れ線グラフのテスト [_layout: PHPExcel_Chart_Title:private] => )

[_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

)

私に返信してください、それは非常に緊急です。

ありがとう

4

1 に答える 1

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] => new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$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)

);

$series = new 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('積み上げ折れ線グラフのテスト'); $yAxisLabel = new PHPExcel_Chart_Title('Value ($k)');

$chart = new PHPExcel_Chart( 'chart1', // 名前 $title, // タイトル $legend, // 凡例 $plotarea, // plotArea true, // 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);

私に何か欠けていることを教えてください.....

于 2012-12-15T14:25:51.263 に答える