【问题标题】:PHPExcel Pie ChartPHPExcel饼图
【发布时间】:2014-02-24 17:51:32
【问题描述】:

我已经被这个问题困扰了一段时间了。我似乎仍然无法找出路。我无法获得 PHPExcel 的饼图示例 33chartcreate-pie.php。我到处搜索,但我似乎无法找到一个好的答案,所以我决定自己问。从给出的示例中,我尝试了这个。我正在使用 Codeigniter,所以我正在加载库 $this->load->library('excel')

$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 /> 我非常感谢您的帮助。谢谢你看这个。我希望一切都清楚。

【问题讨论】:

    标签: php codeigniter phpexcel pie-chart


    【解决方案1】:

    这对我有用

    代替:$this-&gt;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"');

    【讨论】:

    • 考虑将代码块包装在反引号 (`) 中以使代码清晰
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多