将excel文件转换为pdf,phpexcel返回空文件

将excel文件转换为pdf,phpexcel返回空文件,php,excel,pdf,yii2,phpexcel,Php,Excel,Pdf,Yii2,Phpexcel,我有一个excel文件,我想使用php excel将该文件转换为pdf。使用以下代码: namespace frontend\controllers; use PHPExcel; use PHPExcel_IOFactory; use PHPExcel_Settings; use PHPExcel_Style_Alignment; use yii\web\Controller; class ExportsController extends Controller { public fu

我有一个excel文件,我想使用php excel将该文件转换为pdf。使用以下代码:

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');
    }
}
名称空间前端\控制器;
使用PHPExcel;
使用PHPExcel_IOFactory;
使用PHPExcel_设置;
使用PHPExcel_样式_对齐;
使用yii\web\Controller;
类ExportsController扩展控制器
{
公共职能行动索引()
{
$inputFile=\Yii::getAlias('@frontend')。/controllers/matrix.xls';
$inputFileType=PHPExcel\u IOFactory::identify($inputFile);
$objReader=PHPExcel\u IOFactory::createReader($inputFileType);
$objPHPExcel=$objReader->load($inputFile);
$objPHPExcel->setActiveSheetIndex(0);
$renderLibrary='DomPDF';
$renderLibraryPath=\Yii::getAlias(“@frontend”)。/components/Classes/PHPExcel/Writer/PDF/。$renderLibrary;
$renderLibraryPath.='.php';
如果(!PHPExcel_设置::setPdfRenderer(
$rendererLibrary,
$renderLibraryPath
)
) {
死(
'注意:请设置$RenderName和$RenderLibraryPath值'。
“
”。 '在此脚本的顶部,以适合您的目录结构' ); } 标题(“内容类型:应用程序/pdf”); 标题('Content-Disposition:attachment;filename=“01simple.pdf”); 标头('Cache-Control:max age=0'); $objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'PDF'); $objWriter->save('php://output'); } }
当我注释最后两行代码时,它返回的是空的pdf文件,否则它会抛出以下错误:
net::ERR\u INVALID\u RESPONSE

您能帮我找出代码的错误吗?

请在最后添加此代码

  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');
在最后添加此代码

  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');

如果您的xls文件有超过3000条记录,DOMPF将生成内存错误。

如果您的xls文件有超过3000条记录,DOMPF将生成内存错误。

当我放入$objWriter=PHPExcel\u IOFactory::createWriter($objPHPExcel,'PDF');在标题之前,它没有给出net::ERR_INVALID_响应,但当我放置$objWriter=PHPExcel\u IOFactory::createWriter($objPHPExcel,'PDF')时,出现了另一个错误无法加载PDF呈现库加载PDF库;在标题之前,它没有给出net::ERR_INVALID_响应,但出现了另一个错误无法加载PDF呈现库使用必需的加载PDF库\u once您建议用什么代替DomPDF您建议用什么代替DomPDF