PHPExcel - 2007 - 添加图表导致无法读取的内容

时间:2013-10-13 19:48:46

标签: charts phpexcel

最终编辑 - 以下答案 - 问题:GROUPING_TYPE

我是PHPExcel的新手,在通过PHPExcel添加图表时遇到问题。我目前只测试Excel 2007输出版本。

代码的其余部分(未包含)工作正常,因为Excel 2007可以下载和读取简单的数据文件(没有下面的图表代码)而没有错误,但是,当我添加图表时(使用副本/粘贴代码如下),在Excel中打开下载的文件后,我收到错误Excel found unreadable content in:####. Do you want to recover the contents...

编辑:恢复内容后,图表仍然存在且所有数据都正确。

以下是用于生成图表的代码:

//ADD THE REPORT SUMMARY CHART
$chrtCols = "'Report Summary'!B2:B$rowNum";
$chrtVals = "'Report Summary'!C2:C$rowNum";
$periods = new PHPExcel_Chart_DataSeriesValues('String', $chrtCols, null, $rowNum-1);
$values = new PHPExcel_Chart_DataSeriesValues('Number', $chrtVals, null, $rowNum-1);

$series = new PHPExcel_Chart_DataSeries(
    PHPExcel_Chart_DataSeries::TYPE_LINECHART,      
    PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED,  
    array(0),                                       
    array(),                                       
    array($periods),                               
    array($values)                                  
  );
$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL);
$layout = new PHPExcel_Chart_Layout();
$plotarea = new PHPExcel_Chart_PlotArea($layout, array($series));
$chart = new PHPExcel_Chart('sample', null, null, $plotarea);
$chart->setTopLeftPosition('A1');
$chart->setBottomRightPosition('A18');
$actSheet->addChart($chart);

$rowNum是最后一行数据。

另外,我在实际编写文件之前包含了行$objWriter->setIncludeCharts(TRUE);

还使用适用于Excel 2007扩展的MIME类型下载该文件: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,所以我不相信这是一个标题问题?

那里有人可以提供帮助吗?基本上,我只需要在Excel中打开文件时摆脱错误。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

问题是我原始代码中定义的GROUPING_TYPE。我改变了

PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED

PHPExcel_Chart_DataSeries::GROUPING_STANDARD

和中提琴,一切都按预期工作。

所以在那里复制/粘贴用于在PHP Excel中创建图表的代码位的任何人:

如果您在Excel中打开文件时收到“不可读的内容”错误,(并且您的标题已正确设置),请确保您根据GROUP_TYPE声明正确的CHART_TYPE定义了。