1

最終編集 - 以下に回答 - 問題: 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 でファイルを開くときにエラーを取り除く必要があります。何かご意見は?

4

1 に答える 1

0

この問題はGROUPING_TYPE、元のコードで定義されていました。私が変更され

PHPExcel_Chart_DataSeries::GROUPING_CLUSTERED

PHPExcel_Chart_DataSeries::GROUPING_STANDARD

とビオラ、すべて期待どおりに動作します。

PHP Excelでチャートを作成するためのコードビットをコピー/貼り付けする他の人には:

Excel でファイルを開いたときに「読み取り不能なコンテンツ」エラーが発生した場合 (およびヘッダーが正しく設定されている場合)、定義したGROUP_TYPEに従って適切に宣言していることを確認してください。CHART_TYPE

于 2013-10-14T09:27:17.443 に答える