goldbach-algorithms/symfony-entity-exporter

1.3.1 2021-10-29 19:43 UTC

This package is auto-updated.

Last update: 2024-09-24 15:22:24 UTC


README

License: MIT

Goldbach Algorithms Symfony Entity Exporter(亲切地称为Entity Exporter)是一个为Symfony框架开发的库,旨在以简单的方式从数据库中导出信息。

兼容输出格式: CSVXLSPDF

安装

使用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;

许可协议

MIT

版权所有 © 2021 Goldbach Algorithms