2014-02-24 49 views
0

我一直在這個問題上停留了一段時間。我似乎仍然無法弄清楚方式。我無法獲得PHPExcel的餅圖示例,33chartcreate-pie.php。我到處搜索,但我似乎無法找到一個好的答案,所以我決定自己提問。從給出的例子中,我試過這個..我使用Codeigniter,所以我加載庫$this->load->library('excel')PHPExcel餅圖

$dataseriesLabel1 = array(
     new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), 
); 

$xAxisTickValues1 = array(
    new PHPExcel_Chart_DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), 
); 

$dataSeriesValues1 = array(
    new PHPExcel_Chart_DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), 
); 

$series1 = new PHPExcel_Chart_DataSeries(
    PHPExcel_Chart_DataSeries::TYPE_PIECHART, 
    PHPExcel_Chart_DataSeries::GROUPING_STANDARD, 
    range(0, count($dataSeriesValues1)-1), 
    $dataseriesLabels1, 
    $xAxisTickValues1, 
    $dataSeriesValues1 
); 

$layout1 = new PHPExcel_Chart_Layout(); 
$layout1->setShowVal(TRUE); 
$layout1->setShowPercent(TRUE); 

$plotarea1 = new PHPExcel_Chart_PlotArea($layout1, array($series1)); 
$legend1 = new PHPExcel_Chart_Legend(PHPExcel_Chart_Legend::POSITION_RIGHT, NULL, false); 
$title1 = new PHPExcel_Chart_Title('Test Pie Chart'); 

$chart1 = new PHPExcel_Chart(
    'chart1', 
    $title1, 
    $legend1, 
    $plotarea1, 
    true, 
    0, 
    NULL, 
    NULL 
); 

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

$this->excel->getActiveSheet()->addChart($chart1); 

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
header('Content_Disposition: attachment;filename="Report"'); 
header('Cache-Control: max-age=0'); 

$objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel2007'); 
$objWriter->setIncludeCharts(TRUE); 
$objWriter->save('php://output'); 

起初,我沒有得到任何輸出,然後我發現我是用Excel5。所以,我改變了類型Excel2007,但我仍然沒有得到任何東西。事實上,當我出口和的.xlsx擴展更改爲的.xls,我得到以下錯誤: <b>Fatal error</b>: Call to a member function cellExists() on a non-object in <b>path\application\third_party\PHPExcel\Calculation.php</b> on line <b>3327</b><br /> 我會很感激的幫助。謝謝你看這個。我希望一切都很清楚。

回答

1

這項工作對我來說

相反的:$this->excel
使用:                    $objPHPExcel(但首先$objPHPExcel = new PHPExcel();

相反的:header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
使用:                    header('Content-Type: application/vnd.ms-excel');

相反的:header('Content_Disposition: attachment;filename="Report"'); 使用:                        header('Content-Disposition: attachment;filename="Report.xls"');

+0

考慮在反引號(\')中包裝代碼塊會使代碼清除 – urban