0

Excel から PDF へのグラフを含むレポートを生成する必要があります。phpexcel を使用してみましたが、グラフを読み込めません。表を含む PDF のみを生成します。これがphpexcelの私のコードです。

$newpdf = "report-".date('m_d_Y_H_i_s', strtotime('now')).".pdf";
$objPHPExcel1 = new PHPExcel();
$objPHPExcel1 = PHPExcel_IOFactory::load('csv/'.$filename);
$objPHPExcel1->getActiveSheet(0)->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
$objPHPExcel1->getActiveSheet(0)->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
$objPHPExcel1->getActiveSheet(0)->getPageSetup()->setFitToWidth(true);
$objPHPExcel1->getActiveSheet(0)->getPageSetup()->setFitToHeight(true);
$objPHPExcel1->getActiveSheet()->setShowGridLines(false);

header('Content-Type: application/pdf');
header('Content-Disposition: attachment;filename="'.$newpdf.'"'); 
header('Cache-Control: max-age=0'); //no cache
$objWriter1 = new PHPExcel_Writer_PDF($objPHPExcel1); 
$objWriter1->save('php://output');
exit;

また、グラフにjchartfxを使用してHTMLからコンテンツをロードしようとしましたが、成功しませんでした。何か案が?
前もって感謝します。

4

1 に答える 1

0

PHPExcel は、Excel2007 (OfficeOpenXML .xlsx) ファイルからのみチャートを読み取ることができ、明示的にそうするように指示した場合にのみそれらをロードします。

if (PHPExcel_IOFactory::identify('csv/'.$filename) == "Excel2007") {
    $objReader = PHPExcel_IOFactory::createReader("Excel2007");
    $objReader->setIncludeCharts(TRUE);
} else {
    die("Can't load charts");
}
$objPHPExcel = $objReader->load('csv/'.$filename);

PDFファイルに書き込むときは、関連するライブラリ(あなたの場合はtcpdf)をインストールし、それを使用したいこととtcpdfがインストールされているディレクトリをPHPExcelに伝える必要があります。

$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
$rendererLibrary = 'tcPDF5.9';
$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary;

if (!PHPExcel_Settings::setPdfRenderer(
    $rendererName,
    $rendererLibraryPath
)) {
    die('NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
        EOL .
        'at the top of this script as appropriate for your directory structure'
    );
}

jpgraphもインストールする必要があります.PHPExcelはそれがどこにインストールされているかを知る必要があります.

$rendererName = PHPExcel_Settings::CHART_RENDERER_JPGRAPH;
$rendererLibrary = 'jpgraph3.5.0b1/src';
$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary;

if (!PHPExcel_Settings::setChartRenderer(
    $rendererName,
    $rendererLibraryPath
)) {
    die('NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
        PHP_EOL .
        'at the top of this script as appropriate for your directory structure'
    );
}

最後に、グラフを生成するように PDF Writer に明示的に指示する必要があります。

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
$objWriter->setIncludeCharts(TRUE);
$objWriter->save($outputFileName);
于 2014-05-29T07:08:14.353 に答える