mvlabs/mvlabs-phpexcel

MvlabsPHPExcel是一个ZF2模块,允许使用PHPOffice/PHPExcel库轻松创建、修改和读取Excel文件(包括pdf、xlsx、odt)。

安装数量: 1,499

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 4

分支: 1

开放问题: 0

类型:zf2-module

0.0.1 2016-06-07 16:43 UTC

This package is not auto-updated.

Last update: 2024-09-10 22:48:27 UTC


README

MvlabsPHPExcel是一个ZF2模块,允许使用PHPOffice/PHPExcel库轻松创建、修改和读取Excel文件(包括pdf、xlsx、odt)。

要求PHPExcel库

  • PHP版本5.5.0或更高
  • PHP扩展php_zip启用(如果需要PHPExcel处理.xlsx .ods或.gnumeric文件,则必需)
  • PHP扩展php_xml启用
  • PHP扩展php_gd2启用(可选,但要求精确列宽自动计算)

安装

使用composer

  1. 将其添加到您的composer.json

    $composer require liuggio/excelbundle

    $ php composer.phar require mvlabs/mvlabs-phpexcel
  2. 现在运行命令下载MvlabsPHPExcel

    $ php composer.phar update

安装后

  1. application.config.php文件中启用它。

    <?php
    return [
        'modules' => [
            // ...
            'MvlabsPHPExcel',            
        ],
        // ...
    ];

使用方法

该模块注册了一个服务

  • 名为mvlabs.phpexcel.service的服务允许您与Excel文件交互;

  • 创建新的工作簿:如果您想创建一个新的工作簿,只需将其作为新的PHPExcel对象实例化即可。

$phpExcelObject = $this->serviceLocator->get('mvlabs.phpexcel.service')->createPHPExcelObject();
  • 从文件加载工作簿
$phpExcelObject = $this->serviceLocator->get('mvlabs.phpexcel.service')->createPHPExcelObject('myExcelFile.xls');
  • 创建Excel2007并将其保存到文件
$myWriter = $this->serviceLocator->get('mvlabs.phpexcel.service')->createWriter($phpExcelObject, 'Excel2007');
$myWriter->save('myExcelFile.xls');

从控制器将excel文档作为响应渲染

    public function testPHPExcelAction() {
        // I recommend constructor injection for all needed dependencies ;-)
        $this->phpExcelService = $this->serviceLocator->get('mvlabs.phpexcel.service');
        
        $objPHPExcel = $this->phpExcelService->createPHPExcelObject();
        $objPHPExcel->getProperties()->setCreator("Diego Drigani")
            ->setLastModifiedBy("Diego Drigani")
            ->setTitle("MvlabsPHPExcel Test Document")
            ->setSubject("MvlabsPHPExcel Test Document")
            ->setDescription("Test document for MvlabsPHPExcel, generated using Zend Framework 2 and PHPExcel.")
            ->setKeywords("office PHPExcel php zf2 mvlabs")
            ->setCategory("Test result file");
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'Hello')
            ->setCellValue('B2', 'world!')
            ->setCellValue('C1', 'Hello')
            ->setCellValue('D2', 'world!');
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A4', 'Miscellaneous glyphs')
            ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');

        $objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld");
        $objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);
        $objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);
        $objPHPExcel->getActiveSheet()->setTitle('Mvlabs');
        $objPHPExcel->setActiveSheetIndex(0);

        $objWriter = $this->phpExcelService->createWriter($objPHPExcel, 'Excel2007' );

        $response = $this->phpExcelService->createHttpResponse($objWriter, 200, [
            'Pragma' => 'public',
            'Cache-control' => 'must-revalidate, post-check=0, pre-check=0',
            'Cache-control' => 'private',
            'Expires' => '0000-00-00',
            'Content-Type' => 'application/vnd.ms-excel; charset=utf-8',
            'Content-Disposition' => 'attachment; filename=' . 'myTest.xls',
            ]);

        return $response;
    
    }    

致谢

MvlabsPHPExcel基于出色的PHPOffice/PHPExcel库。MvlabsPHPExcel由mvlabs开发。