【发布时间】:2013-10-21 09:17:37
【问题描述】:
最终编辑 - 答案如下 - 问题: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 中打开文件时消除错误。有什么想法吗?
【问题讨论】:
-
在创建折线图时可能为 Column 设置图表方向
-
@MarkB:我注释掉了
$series->setPlotDirection(PHPExcel_Chart_DataSeries::DIRECTION_COL);代码行,但仍然收到相同的错误。还有其他想法吗? -
@MarkB:另外,请看我的
EDIT。修复文件后,图表可用(以前的大小不正确且难以定位)并且数据完好无损。我现在遇到的主要问题是在打开文件时摆脱“不可读的内容”错误。感谢您的帮助。 -
在不知道数据的情况下很难评估:
GROUPING_CLUSTERED可能应该是GROUPING_STANDARD,因为您只使用单个数据系列 -
@MarkB:您的最后一条评论是正确的。它与我设置的 grouping_type 有关。请参阅下面的答案(弄清楚并在您回复时写下我的答案)。不过感谢您的帮助。看来今晚所有其他巫师都很忙。