You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.8 KiB
86 lines
2.8 KiB
<?php |
|
/** |
|
* Class for exporting CSV dumps of tables for excel |
|
*/ |
|
|
|
declare(strict_types=1); |
|
|
|
namespace PhpMyAdmin\Plugins\Export; |
|
|
|
use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup; |
|
use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup; |
|
use PhpMyAdmin\Properties\Options\Items\BoolPropertyItem; |
|
use PhpMyAdmin\Properties\Options\Items\HiddenPropertyItem; |
|
use PhpMyAdmin\Properties\Options\Items\SelectPropertyItem; |
|
use PhpMyAdmin\Properties\Options\Items\TextPropertyItem; |
|
use PhpMyAdmin\Properties\Plugins\ExportPluginProperties; |
|
|
|
use function __; |
|
|
|
/** |
|
* Handles the export for the CSV-Excel format |
|
*/ |
|
class ExportExcel extends ExportCsv |
|
{ |
|
/** |
|
* @psalm-return non-empty-lowercase-string |
|
*/ |
|
public function getName(): string |
|
{ |
|
return 'excel'; |
|
} |
|
|
|
protected function setProperties(): ExportPluginProperties |
|
{ |
|
$exportPluginProperties = new ExportPluginProperties(); |
|
$exportPluginProperties->setText('CSV for MS Excel'); |
|
$exportPluginProperties->setExtension('csv'); |
|
$exportPluginProperties->setMimeType('text/comma-separated-values'); |
|
$exportPluginProperties->setOptionsText(__('Options')); |
|
|
|
// create the root group that will be the options field for |
|
// $exportPluginProperties |
|
// this will be shown as "Format specific options" |
|
$exportSpecificOptions = new OptionsPropertyRootGroup('Format Specific Options'); |
|
|
|
// general options main group |
|
$generalOptions = new OptionsPropertyMainGroup('general_opts'); |
|
// create primary items and add them to the group |
|
$leaf = new TextPropertyItem( |
|
'null', |
|
__('Replace NULL with:') |
|
); |
|
$generalOptions->addProperty($leaf); |
|
$leaf = new BoolPropertyItem( |
|
'removeCRLF', |
|
__('Remove carriage return/line feed characters within columns') |
|
); |
|
$generalOptions->addProperty($leaf); |
|
$leaf = new BoolPropertyItem( |
|
'columns', |
|
__('Put columns names in the first row') |
|
); |
|
$generalOptions->addProperty($leaf); |
|
$leaf = new SelectPropertyItem( |
|
'edition', |
|
__('Excel edition:') |
|
); |
|
$leaf->setValues( |
|
[ |
|
'win' => 'Windows', |
|
'mac_excel2003' => 'Excel 2003 / Macintosh', |
|
'mac_excel2008' => 'Excel 2008 / Macintosh', |
|
] |
|
); |
|
$generalOptions->addProperty($leaf); |
|
$leaf = new HiddenPropertyItem('structure_or_data'); |
|
$generalOptions->addProperty($leaf); |
|
// add the main group to the root group |
|
$exportSpecificOptions->addProperty($generalOptions); |
|
|
|
// set the options for the export plugin property item |
|
$exportPluginProperties->setOptions($exportSpecificOptions); |
|
|
|
return $exportPluginProperties; |
|
} |
|
}
|
|
|