2012-05-13 54 views
3

因此,我将使用PHPExcel创建的Excel文件导出为PDF。我唯一的问题是内容在内容消失的页面宽度(而不是长度)上运行。只有内容应该在空白页面上创建。我试着将与像从文档这个例子行分栏符,但只行中断点似乎与PDF的工作:PHPExcel PDF版式

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

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

我的理想解决方案是将任何额外的内容运行到第二个页面,该页面可以放在第一页的旁边,以显示整个表格,因为它出现在真正的Excel文档中。

+0

您可以将工资布局从肖像切换到风景吗? – 2012-05-13 20:06:47

+0

我可以,但我的内容可以无限宽,所以没有帮助。 – user1045879

回答

1

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

虽然我知道其他一些可以从HTML生成PDF的库(例如domPdf和mPdf),并且PHPExcel的未来版本将允许您选择您希望使用的这些库中的哪一个,但它们都不是似乎能够生成多个页面以显示工作表的全部数据。

除非有人可以提出替代方案,否则恐怕这仍然是可预见未来的限制。我有一个垂直类似的问题

+0

感谢您的回答。我的解决方案只是手动放下所有东西,并通过缩小字体和使用非常薄的边框来适合我在一页上所能做的。 – user1045879

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