2017-07-28 1 views
1

J'ai un fichier Excel et je veux convertir le fichier en format pdf en utilisant php excel. En utilisant le code suivant:convertir un fichier Excel en pdf avec phpexcel renvoyer un fichier vide

namespace frontend\controllers; 
use PHPExcel; 
use PHPExcel_IOFactory; 
use PHPExcel_Settings; 
use PHPExcel_Style_Alignment; 
use yii\web\Controller; 

class ExportsController extends Controller 
{ 
    public function actionIndex() 
    { 
     $inputFile = \Yii::getAlias('@frontend') . '/controllers/matrix.xls'; 
     $inputFileType = PHPExcel_IOFactory::identify($inputFile); 
     $objReader = PHPExcel_IOFactory::createReader($inputFileType); 
     $objPHPExcel = $objReader->load($inputFile); 
     $objPHPExcel->setActiveSheetIndex(0); 

     $rendererLibrary = 'DomPDF'; 
     $rendererLibraryPath = \Yii::getAlias('@frontend') . '/components/Classes/PHPExcel/Writer/PDF/' . $rendererLibrary; 
     $rendererLibraryPath .= '.php'; 

     if (!PHPExcel_Settings::setPdfRenderer(
      $rendererLibrary, 
      $rendererLibraryPath 
     ) 
     ) { 
      die(
       'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . 
       '<br />' . 
       'at the top of this script as appropriate for your directory structure' 
      ); 
     } 
     header('Content-Type: application/pdf'); 
     header('Content-Disposition: attachment;filename="01simple.pdf"'); 
     header('Cache-Control: max-age=0'); 
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF'); 
     $objWriter->save('php://output'); 
    } 
} 

Quand je commente les deux dernières lignes de code, il est vide fichier du retour d'pdf sinon le lancer l'erreur suivante: net::ERR_INVALID_RESPONSE.

Pourriez-vous m'aider s'il vous plaît à trouver l'erreur du code?

Répondre

0

Ajoutez ce code dans la dernière

header('Content-Type: application/pdf'); 
    header('Content-Disposition: attachment;filename="01simple.pdf"'); 
    header('Cache-Control: max-age=0'); 
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF'); 
    ob_end_clean(); 
    $objWriter->save('php://output'); 
+0

toujours la même erreur –

+0

Lorsque je mets $ objWriter = PHPExcel_IOFactory :: createWriter ($ objPHPExcel, 'PDF'); avant l'en-tête, il ne donne pas net :: ERR_INVALID_RESPONSE mais une autre erreur s'affiche Impossible de charger la bibliothèque PDF Rendering –

+0

Charger la bibliothèque PDF en utilisant required_once –

0

si votre fichier xls ont plus d'environ 3000 dossiers, dompdf produira de l'erreur de mémoire.

+0

Que suggérez-vous plutôt que DomPDF? –