PHP Excel只保存一个工作表作为pdf

时间:2017-07-07 18:40:21

标签: php excel phpexcel

我正在使用phpoffice / phpexcel有问题。

  1. 我有一张包含9张的excel文件
  2. 我打开这9张中的6张($ objReader-> setLoadSheetsOnly([...]))设置一些值并计算
  3. 我用6张
  4. 保存这个新的excel文件

    信息:6个网站中的一个是概览网站,其中包含对其他工作表的一些引用

    我有什么方法只将概述表保存为PDF?

    我的台词:

    require_once dirname(__FILE__) . '/PHPExcel/IOFactory.php';
    
    if (!file_exists("orginal.xls")) {
        exit("Please create orginal.xls first." . EOL);
    }
    
    PHPExcel_Settings::setCacheStorageMethod(PHPExcel_CachedObjectStorageFactory::cache_in_memory);
    
    echo date('H:i:s') , " Load from Excel2007 file" , EOL;
    
    $objReader = PHPExcel_IOFactory::createReader('Excel5');
    
    $objReader->setLoadSheetsOnly(array("Dateneingabe", "Leistungen EK", "Flugliste", "Sprachen", "Buchungsübersicht", "Verkaufspreise", "Offerte", "Transferdauer"));
    
    $objPHPExcel = $objReader->load("orginal.xls");
    
    $objPHPExcel->setActiveSheetIndexByName('Dateneingabe');
    $objPHPExcel->getActiveSheet()->SetCellValue('D102', '220');
    $objPHPExcel->getActiveSheet()->SetCellValue('F102', '220');
    
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    //$objWriter->setPreCalculateFormulas(false);
    $objWriter->setOffice2003Compatibility(true);
    $objWriter->save(str_replace('.php', '.xls', __FILE__));
    
     //SAVE AS PDF
    
    $objReader = PHPExcel_IOFactory::createReader('Excel2007');
    
    $objReader->setReadDataOnly(true);
    
    $objReader->setLoadSheetsOnly(array("Dateneingabe", "Leistungen EK", "Flugliste", "Sprachen", "Buchungsübersicht", "Verkaufspreise", "Offerte", "Transferdauer"));
    
    $objPHPExcel = $objReader->load("index.xls");
    
    $objPHPExcel->setActiveSheetIndexByName('Offerte');
    
    $rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
    
    $rendererLibrary = dirname(__FILE__).'/dompdf/dompdf/';
    
    PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibrary);
    
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
    
    $objWriter->setPreCalculateFormulas(false);
    
    $objWriter->save(str_replace('.php', '.pdf', __FILE__));
    

2 个答案:

答案 0 :(得分:0)

默认情况下,HTML和PDF Writer(PDF Writer使用HTML Writer的输出,它使用任何支持的PDF Writer库转换为PDF)只会创建一个工作表输出。

但是,这些Writers允许您使用setSheetIndex()方法选择要写入的工作表,因此您可以依次为每个单独的工作表写出文件,然后使用任何PDF将它们“拼接”在一起存在的拼接工具......或者还有writeAllSheets()方法。

答案 1 :(得分:0)

使用mpdf工具,如下面的代码

使用mpdf工具将您的数据转换为pdf格式。