PHPExcel PDF布局

时间:2012-05-13 19:59:02

标签: php symfony phpexcel

所以我将使用PHPExcel创建的Excel文件导出为PDF。我唯一的问题是当内容超出页面宽度(而不是长度)时内容消失。仅创建该内容所在的空白页面。我已经尝试从文档中插入一个像这个例子这样的行的列分隔符,但只有行中断似乎与PDF一起使用:

$objPHPExcel->getActiveSheet()->setBreak( 'D10' , \PHPExcel_Worksheet::BREAK_COLUMN );

值得一提的是我在Symfony2控制器中工作,因此在PHPExcel枚举前斜杠。

我理想的解决方案是将任何额外的内容转到第二页,可以放在第一页旁边,以显示真实Excel文档中显示的整个表格。

2 个答案:

答案 0 :(得分:1)

这是PHPExcel用于将html输出呈现为PDF(即tcPDF)的外部库的限制。

虽然我知道许多其他库可以从HTML生成PDF(例如domPdf和mPdf),但未来版本的PHPExcel将允许您选择您希望使用哪些库,但似乎没有一个能够生成多个页面以显示工作表整个宽度的数据。

除非有人能提出替代方案,否则我担心这在可预见的未来仍将是一个限制因素。

答案 1 :(得分:0)

我垂直遇到类似的问题, 我找到的解决方案就是使用这个

$highestRow = $objPHPExcel->setActiveSheetIndex(0)
    ->getHighestRow();

$objPHPExcel->setActiveSheetIndex(0)
    ->getPageSetup()
    ->setPrintArea("A1:I" . $highestRow )
    ->setFitToHeight(255);

我建议尝试类似宽度的东西。 例如:

   $highestColumn= $objPHPExcel->setActiveSheetIndex(0)
        ->getHighestColumn();


    $objPHPExcel->setActiveSheetIndex(0)
        ->getPageSetup()
        ->setPrintArea("A1:" . $highestColumn . "10" )
        ->setFitToWidth(255);