Adatok exportálása csv fájlba
Kategória: Nincs kategorizálva Címke:Symfony Készült: 2010.01.13
a eredeti hogyan:
Symfony Howto: Export tabular data to a csv file?
Ennek teljese kidolgozott változata található itt.
A mymodule/Csv az adatokat ;-vel elválasztva megjeleníti.
Action:
<?php
class mymoduleActions extends autoMyActions
{
public function executeCsv(sfWebRequest $request)
{
$this->pager = $this->getPager();
$c=$this->pager->getCriteria();
$c->setLimit(false);
$this->rows=$this->pager->getResults();
}
}
csvSuccess.php:
<?php
use_helper('I18N');
$rowBefore = '';
$rowAfter = "\r\n";
$cellBefore = '';
$cellAfter = ';';
$cellHeadBefore = '';
$cellHeadAfter =';';
echo $rowBefore;
echo $cellHeadBefore.iconv('UTF-8', 'WINDOWS-1250', __('Head1')).$cellHeadAfter;
echo $cellHeadBefore.iconv('UTF-8', 'WINDOWS-1250', __('Head1')).$cellHeadAfter;
echo $rowAfter;
foreach($rows as $row)
{
echo $rowBefore;
echo $cellBefore.iconv('UTF-8', 'WINDOWS-1250', $row->getMezo1()).$cellAfter;
echo $cellBefore.iconv('UTF-8', 'WINDOWS-1250', $row->getMezo2()).$cellAfter;
echo $rowAfter;
}
Ezután már csak a következőket kell beállítani:
- vigyünk fel egy új routing szabályt a routing.yml fájlba
export_excel: url: /export.csv param: {module: myModule, action: csv}
- Apache mod_rewrite esetén egy új szabályra van szükség az apache .htaccess fájlba a .csv fájlok elérése végett.
RewriteCond %{REQUEST_URI} !\.csv$
- A mymodule/config/view.yml fájlba vigyük fel az aléábbi sorokat:
csvSuccess: has_layout: off http_metas: content-type: application/msexcel Content-Disposition: attachment; filename=mymodule_<?php echo date('Ymd')?>.csv

Ide kérjük a választ!