vegas-cmf / exporter
此包已被废弃,不再维护。未建议替代包。
Vegas CMF 导出器
v1.1-rc0
2015-03-10 11:14 UTC
Requires
- php: >=5.4
- ext-phalcon: 1.3.*
- mpdf/mpdf: 6.0.*
- phalcon/devtools: 1.3.x-dev
- phalcon/incubator: 1.3.*
- phpoffice/phpexcel: 1.8.*
- vegas-cmf/core: 1.*
Requires (Dev)
- phpunit/phpunit: 4.0.*
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2022-08-15 20:49:27 UTC
README
导出器允许用户以下方式之一获取表格输出
- 存储到文件
- 在浏览器中下载文件
- 原始字符串缓冲区
目前,该库支持以下格式
- CSV
- XLS (Excel 2007)
- XML
安装
通过将以下片段添加到您的 services
目录,将 \Vegas\Exporter\Exporter
类设置为服务
use Phalcon\DiInterface; use Vegas\DI\ServiceProviderInterface; /** * Class ExporterServiceProvider */ class ExporterServiceProvider implements ServiceProviderInterface { const SERVICE_NAME = 'exporter'; /** * {@inheritdoc} */ public function register(DiInterface $di) { $di->set(self::SERVICE_NAME, function() use ($di) { $exporter = new \Vegas\Exporter\Exporter; return $exporter->setDI($di); }, true); } public function getDependencies() { return []; } }
使用保存
$exportData = [ ["John", "Malkovic", "52"], ["Kenny", "Smith", "36"], ["Sam", "Stevenson", "18"], ]; $columns = ["Firstname", "Lastname", "age"]; $extraSettings = [ // CSV-only settings, default values below 'separator' => ',', 'lineSeparator' => PHP_EOL, 'skipHeaders' => false, // skip printing headers in first row? 'quoteFields' => false // enclose output fields in "" ]; $config = (new \Vegas\Exporter\ExportSettings) ->setFilename('my_export_file') ->setOutputDir('/tmp') ->setHeaders($columns) ->setHeaderKeysAsParams(true) ->setData($exportData) ->setExtraSettings($extraSettings); /** @var \Phalcon\DiInterface $di */ $exporter = $di->get('exporter'); $exporter->setConfig($config); $exporter->saveCsv();
这将把我们的数据以 CSV 格式存储到文件 /tmp/my_export_file.csv
中。
下载使用
$exportData = [ ["John", "Malkovic", "52"], ["Kenny", "Smith", "36"], ["Sam", "Stevenson", "18"], ]; $columns = ["Firstname", "Lastname", "age"]; $extraSettings = [ // PDF-only settings, default values below 'pageOrientation' => 'Portrait', 'pageSize' => 'A4', 'fontSize' => 0, 'fontFamily' => '' ]; $config = (new \Vegas\Exporter\ExportSettings) ->setTemplate('template_name') ->setTitle('My first PDF export') ->setFilename('my_export_file') ->setHeaders($columns) ->setData($exportData) ->setExtraSettings($extraSettings); /** @var \Phalcon\DiInterface $di */ $exporter = $di->get('exporter'); $di->get('view')->disable(); // prevent default view rendering $exporter->setConfig($config); $exporter->downloadPdf();
这将使浏览器下载名为 my_export_file.pdf
的 PDF 文件。
请注意,PDF 格式需要在模块视图目录中有一个 template_name
部分来正确渲染输出。
打印使用
$john = new \stdClass; $john->Firstname = 'John'; $john->Lastname = 'Malkovic'; $john->age = 52; $exportData = [ $john, // ... ]; $columns = ["Firstname", "Lastname", "age"]; $extraSettings = [ // XML-only settings, default values below 'rootName' => 'root', // document tree tag name 'nodeName' => 'item' // each node tag name ]; $config = (new \Vegas\Exporter\ExportSettings) ->setHeaders($columns) ->setHeaderKeysAsParams(false) ->setData($exportData) ->setExtraSettings($extraSettings); /** @var \Phalcon\DiInterface $di */ $exporter = $di->get('exporter'); $exporter->setConfig($config); $result = $exporter->printXml();
这将把格式化好的 XML 字符串分配给 $result
。正如所示,导出器也接受对象数组输入。