Exporters 
Adding exporters 
To add an exporter, use the data table builder's addExporter() method:
php
use Kreyu\Bundle\DataTableBundle\DataTableBuilderInterface;
use Kreyu\Bundle\DataTableBundle\Type\AbstractDataTableType;
use Kreyu\Bundle\DataTableBundle\Bridge\OpenSpout\Exporter\Type\CsvExporterType;
use Kreyu\Bundle\DataTableBundle\Bridge\OpenSpout\Exporter\Type\XlsxExporterType;
class UserDataTableType extends AbstractDataTableType
{
    public function buildDataTable(DataTableBuilderInterface $builder, array $options): void
    {
        $builder
            ->addExporter('csv', CsvExporterType::class)
            ->addExporter('xlsx', XlsxExporterType::class)
        ;
    }
}This method accepts three arguments:
- exporter name;
 - exporter type — with a fully qualified class name;
 - exporter options — defined by the exporter type, used to configure the exporter;
 
For reference, see available exporter types.
Creating exporter types 
Exporter types are classes that implement ExporterTypeInterface. However, it's better to extend from the AbstractExporterType:
php
use Kreyu\Bundle\DataTableBundle\Exporter\Type\AbstractExporterType;
class CustomExporterType extends AbstractExporterType
{
}Recommended namespace for the exporter type classes is App\DataTable\Exporter\Type\.
Exporter type inheritance 
To make a type class use another type as a parent, provide its fully-qualified class name in the getParent() method:
php
use Kreyu\Bundle\DataTableBundle\Exporter\Type\AbstractExporterType;
use Kreyu\Bundle\DataTableBundle\Exporter\Type\CallbackExporterType;
class CustomExporterType extends AbstractExporterType
{
    public function getParent(): ?string
    {
        return CallbackExporterType::class;
    }
}TIP
If you take a look at the AbstractExporterType, you'll see that getParent() method returns fully-qualified name of the ExporterType type class. This is the type that defines all the basic options, such as label, use_headers, etc.
