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