j_g*_*man 4 export-to-excel date-formatting symfony sonata-admin
我接管了在上构建的Symfony2应用程序的责任Sonata Admin Bundle,并要求用户进行一些小的更改。在列表页面的xls导出中,日期全部显示为例如Wed, 01 Aug 2012 00:00:00 +0200,但Excel格式为General。用户希望此列中的数据为Excel日期类型,以便可以排序。
我已经能够找到有关导出自定义的一些信息,但这主要与选择列表导出文件类型或要包括的字段有关,而不是如何更改导出文档中的格式。我在这里提出了类似的问题,但没有答案。
我认为这将(或应该)非常简单,但显然并不明显。任何帮助将非常感激。
Marciano的答案有一个小改进。使代码在应对奏鸣曲更新方面更具弹性。
public function getDataSourceIterator()
{
$datasourceit = parent::getDataSourceIterator();
$datasourceit->setDateTimeFormat('d/m/Y'); //change this to suit your needs
return $datasourceit;
}
Run Code Online (Sandbox Code Playgroud)
小智 1
你成功了吗?
日期格式定义为新 DoctrineORMQuerySourceIterator.php 的参数(https://github.com/sonata-project/exporter/blob/master/lib/Exporter/Source/DoctrineORMQuerySourceIterator.php)
DoctrineORMQuerySourceIterator.phpgetDataSourceIterator在函数内部创建( https://github.com/sonata-project/SonataDoctrineORMAdminBundle/blob/2705f193d6a441b9140fef0996ca392887130ec0/Model/ModelManager.php)
里面Admin.php有函数调用它:
public function getDataSourceIterator()
{
$datagrid = $this->getDatagrid();
$datagrid->buildPager();
return $this->getModelManager()->getDataSourceIterator($datagrid, $this->getExportFields());
}
Run Code Online (Sandbox Code Playgroud)
如果您自己编写, getDataSourceIterator()则可以更改日期格式。