https://github.com/matiasiglesias/vmb-zf2-data-export-module
ZF2 Data Export Module to XLS, CSV and PDF
https://github.com/matiasiglesias/vmb-zf2-data-export-module
csv export module pdf php xls zf2
Last synced: 7 months ago
JSON representation
ZF2 Data Export Module to XLS, CSV and PDF
- Host: GitHub
- URL: https://github.com/matiasiglesias/vmb-zf2-data-export-module
- Owner: matiasiglesias
- License: other
- Fork: true (vitorbarros/vmb-zf2-data-export-module)
- Created: 2017-03-04T23:17:34.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-03-05T14:02:52.000Z (over 9 years ago)
- Last Synced: 2025-10-24T06:53:04.131Z (9 months ago)
- Topics: csv, export, module, pdf, php, xls, zf2
- Language: PHP
- Homepage:
- Size: 32.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Módulo para exportação de dados em CSV, XSL, e PDF
Based on [Módulo de exportação de dados de Vitor Monteiro de Barros](https://github.com/vitorbarros/vmb-zf2-data-export-module)
## Instalação
### Observação
Para que o módulo funcione de forma correta, é necessário seguir as instruções de instalação do módulo do Doctrine.
`https://github.com/doctrine/DoctrineORMModule`
### ZF2 Data Export Module
Rode
`php composer.phar require vitorbarros/vmb-zf2-data-export-module`
Após, adicione os seguintes modulos
`DoctrineModule`, `DoctrineORMModule`, `DoctrineDataFixtureModule` and `VMBDataExport` no seguinte arquivo: `config/application.config.php`
Após, crie o seguinte diertório com permissão de escrita
`data/DoctrineORMModule/Proxy`
Cria os seguintes diretórios
`public/xsl`
`public/pdf`
`public/csv`
### Form ###
Your form can extend VMBDataExportForm Class like this:
```php
setData(array(
'entity' => 'Your\Entity\NameSpace',
//Condições da query
'criteria' => Json::encode(array()),
//Tipos suportados xls, pdf, csv
'type' => 'xls',
//url to redirect
'redirect_to' => '/interno/super-admin/cursos',
//headers
'headers' => Json::encode(array(
'event_nome',
'event_data_inicio',
'event_data_final',
'event_descricao',
)),
));
return new ViewModel(
array(
'form' => $form,
)
);
}
}
//view
form; ?>
setAttribute('action', '/export'); ?>
prepare(); ?>
form()->openTag($form); ?>
formhidden($form->get('entity')); ?>
formhidden($form->get('criteria')); ?>
formhidden($form->get('type')); ?>
formhidden($form->get('redirect_to')); ?>
formhidden($form->get('headers')); ?>
formsubmit($form->get('submit')); ?>
form()->closeTag();
```
### Export Throw service injected in your Controller
```php
namespace MyNameSpace
use VMBDataExport\Service\MainService;
class MyController
{
private $exportService;
public function __contruct(MainService $exportService)
{
$this->exportService = $exportService;
}
public function CustomAction() {
$filename = $this->exportService->strategy('xls', [
'entity' => 'My\Entity\Name',
'method' => 'filter', //You can call a custom Entity Repository Method
'criteria' => Json::encode(
[$your_criteria_array]
),
'headers' => Json::encode([
'field1',
'field2',
// ...
]),
]);
return $this->redirect()->toUrl($filename);
}
}
```
### Export de dados com query customizada
```php
//controller class
use Zend\Mvc\Controller\AbstractActionController;
use VMBDataExport\Service\CustomExportService;
class YourController extends AbstractCrudController
{
/**
* @var CustomExportService
*/
private $customExportService;
/**
* ExportController constructor.
* @param CustomExportService $customExportService
*/
public function __construct(CustomExportService $customExportService)
{
$this->customExportService = $customExportService;
}
public function yourAction()
{
$sql = "Your query";
$filePath = $this->customExportService->export($sql, array(
'your',
'header',
'fields'
), 'xls');
return $this->redirect()->toUrl($filePath);
}
}
```
#### Acesse o navegador
`yourdomain.com.br/your-export-action`
### TODO
Finalizar a classe `VMBDataExport\Export\PDFExport`