拒絕?我相信我不是第一個遇到這個問題的人。PHPExcel - Excel5 - 創建折線圖 - 圖表丟失
我想創建一個使用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
是最後一行數據。
那麼,這當然可以解釋爲什麼它不起作用。哈哈。在我花費數小時試圖自行整理之前,我發佈了這裏的好東西。再次感謝!附:是否支持在'95爲PHPExcel_5類開發的圖表或是'95'格式被認爲已經過時並且在這一點上浪費代碼? – IIIOXIII
它會及時發佈,但目前我仍在細化PHPExcel核心的圖表構造細節 –
是的。肯定需要時間。很難想象你有沒有時間開發所有的問題和解決方案。但對於像我這樣的人來說,這很好。總之,保持良好的工作。噢,一個(希望是最後的)後續問題,是否有一個文檔中某處的類/函數的引用列表,所以我可以確定在使用類/函數時添加了正確的變量,空值等,或者我只需要挖掘? – IIIOXIII