拒绝?我确信我不是第一个遇到这个问题的人。
我正在尝试使用PHPExcel和Excel5库创建一个图表来生成'95格式的.xls文件。
除了创建/保存图表本身外,一切顺利。保存/下载/打开文件时没有任何错误,PHPExcel在创建/保存期间或在打开文件期间由Excel提醒。
唯一真正的问题是,在创建的Excel '95 .xls文件中没有可见的图表。
我已检查确保MIME类型设置为'95 .xls格式application/vnd.ms-excel
。它是。
这是与图表创建有关的代码,目前有点乱,但就像我说的那样,就像2007版的魅力一样:
//ADD THE REPORT SUMMARY CHART
$labels = array(
new PHPExcel_Chart_DataSeriesValues('String', "'Report Summary'!C1", null, 1),
new PHPExcel_Chart_DataSeriesValues('String', "'Report Summary'!D1", null, 1)
);
$chrtCols = "'Report Summary'!B2:B$rowNum";
$chrtVals = "'Report Summary'!C2:C$rowNum";
$chrtVals2 = "'Report Summary'!D2:D$rowNum";
$periods = new PHPExcel_Chart_DataSeriesValues('String', $chrtCols, null, $rowNum-1);
$values = new PHPExcel_Chart_DataSeriesValues('Number', $chrtVals, null, $rowNum-1);
$values2 = new PHPExcel_Chart_DataSeriesValues('Number', $chrtVals2, null, $rowNum-1);
$series = new PHPExcel_Chart_DataSeries(
PHPExcel_Chart_DataSeries::TYPE_LINECHART,
PHPExcel_Chart_DataSeries::GROUPING_STANDARD,
array(0,1),
$labels,
array($periods,$periods),
array($values,$values2)
);
$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', 24, 24);
$chart->setBottomRightPosition('B18', -24);
$actSheet->addChart($chart);
问题似乎与'95版本有关,因为完全相同的代码可以创建文件的有效2007版本(使用Excel_2007类而不是Excel5)。
有什么想法?与Excel_95相比,Excel_07中的折线图(或标签定义不同)是不同的? $ series数组中的任何其他声明我应该添加/修改/删除以使图表显示为Excel_95?
是的,我在写文件之前加入了$objWriter->setIncludeCharts(TRUE);
。
$rowNum
是最后一行数据。
答案 0 :(得分:2)
PHPExcel仅支持Excel2007 Reader / Writer的图表;该功能尚未为Excel5 Reader / Writer编写