将excel文件转换为pdf,phpexcel返回空文件
我有一个excel文件,我想使用php excel将该文件转换为pdf。使用以下代码:将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
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