goldbach-algorithms / symfony-entity-exporter
Symfony Entity Exporter
1.3.1
2021-10-29 19:43 UTC
Requires
- ext-gd: *
- phpoffice/phpspreadsheet: ^1.18
- sasedev/mpdf-bundle: ^2.0.0
Requires (Dev)
- ext-gd: *
- phpoffice/phpspreadsheet: ^1.18
- sasedev/mpdf-bundle: ^2.0.0
README
Goldbach Algorithms Symfony Entity Exporter(亲切地称为Entity Exporter)是一个为Symfony框架开发的库,旨在以简单的方式从数据库中导出信息。
兼容输出格式: CSV,XLS 和 PDF
安装
使用composer进行安装
composer require goldbach-algorithms/symfony-entity-exporter
配置
根据您的项目需求,在您的.env文件中设置以下设置
ENTITY_PATH
如果您已更改项目中实体的父目录,您必须在.env文件中设置ENTITY_PATH变量以指示新目录。
TRANSITORY_MEMORY
作为选项,您也可以在项目的.env文件中定义变量TRANSITORY_MEMORY的值,这将更改导出执行期间的PHP内存限制,以避免崩溃。默认值为1GB。
使用方法
查看一些使用Symfony Entity Exporter的示例
查看.csv导出示例
use GoldbachAlgorithms\SymfonyEntityExporter\SymfonyEntityExporter; # Instantiate a new Entity Exporter $entityExporter = new SymfonyEntityExporter; # Set $data (query return) and entity class $response = $entityExporter->csv( $data, User::class, UserDataExport::class, # Data Export Template (not required) 'Title', # Title (not required) 'Filename', # File .csv name (not required) ';' # .csv Delimiter (not required) default ; ); # Exporting file (.csv) return $response;
您还可以从实体查询结果生成.pdf文件。
查看.pdf导出示例
use GoldbachAlgorithms\SymfonyEntityExporter\SymfonyEntityExporter; # Instantiate a new Entity Exporter $entityExporter = new SymfonyEntityExporter; # Set $data (query return) and entity class $response = $entityExporter->pdf( $data, User::class, UserDataExport::class, # Data Export Template (not required) 'Filename', # File .pdf name (not required), 'Header content', # (not required) 'Footer content', # (not required) 'P', # Portrait or Landscape (not required) '10', # Margin Header (not required) '10', # Margin Footer (not required) '10', # Top content margin (not required) 'A4', # Print Format (not required) 'utf-8', # Char Mode (not required) ); # Exporting file (.pdf) return $response;
您还可以导出HTML模板,例如twig文件
查看通过HTML导出的.pdf示例
use GoldbachAlgorithms\SymfonyEntityExporter\SymfonyEntityExporter; # Instantiate a new Entity Exporter $entityExporter = new SymfonyEntityExporter; # Set a content $content = $this->renderView('content.html.twig', $vars); # Call the method pdfByHtml() $response = $entityExporter->pdfByHtml( $content, 'Filename', # File .pdf name (not required), 'Header content', # (not required) 'Footer content', # (not required) 'P', # Portrait or Landscape (not required) '10', # Margin Header (not required) '10', # Margin Footer (not required) '10', # Top content margin (not required) 'A4', # Print Format (not required) 'utf-8', # Char Mode (not required) ); # Exporting file (.pdf) return $response;
您可以根据src/ExampleDataExport.php中的示例创建导出模板,通过向您的应用程序添加App/DataExport目录来实现。
EasyAdminBundle
Entity Exporter与Easy Admin Bundle兼容,因此可以在页面的控制器中执行数据导出。
查看.xls导出示例
use EasyCorp\Bundle\EasyAdminBundle\Factory\AdminContextFactory; use GoldbachAlgorithms\SymfonyEntityExporter\SymfonyEntityExporter; # Inject the AdminContextFactory and define public /** @var AdminContextFactory */ public $adminContextFactory; public function __construct(AdminContextFactory $adminContextFactory) { $this->adminContextFactory = $adminContextFactory; } # Instantiate a new Entity Exporter $entityExporter = new SymfonyEntityExporter; # Get the FilterFactory into Controller $filterFactory = $this->get(FilterFactory::class); # Use the Entity Exporter builder to EasyAdmin $data = $entityExporter->getEasyAdminQuery( $request, $filterFactory, $this, [ 'id' => 1 ] ); # Set $data (query return) and entity class $response = $entityExporter->xls($data, User::class); # File .xls return $response;
许可协议
版权所有 © 2021 Goldbach Algorithms