【问题标题】:PHPExcel - 2007 - Adding Chart Causing unreadable ContentPHPExcel - 2007 - 添加图表导致内容不可读
【发布时间】: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 有关。请参阅下面的答案(弄清楚并在您回复时写下我的答案)。不过感谢您的帮助。看来今晚所有其他巫师都很忙。

标签: charts phpexcel


【解决方案1】:

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

PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED

PHPExcel_Chart_DataSeries::GROUPING_STANDARD

和中提琴,一切正常。

所以对于其他任何人来说,复制/粘贴代码位以在 PHP Excel 中创建图表:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多