aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/libraries/classes/Plugins/Export/ExportExcel.php
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Plugins/Export/ExportExcel.php')
-rw-r--r--srcs/phpmyadmin/libraries/classes/Plugins/Export/ExportExcel.php90
1 files changed, 90 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Plugins/Export/ExportExcel.php b/srcs/phpmyadmin/libraries/classes/Plugins/Export/ExportExcel.php
new file mode 100644
index 0000000..e778d20
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Plugins/Export/ExportExcel.php
@@ -0,0 +1,90 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Class for exporting CSV dumps of tables for excel
+ *
+ * @package PhpMyAdmin-Export
+ * @subpackage CSV-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;
+
+/**
+ * Handles the export for the CSV-Excel format
+ *
+ * @package PhpMyAdmin-Export
+ * @subpackage CSV-Excel
+ */
+class ExportExcel extends ExportCsv
+{
+ /**
+ * Sets the export CSV for Excel properties
+ *
+ * @return void
+ */
+ protected function setProperties()
+ {
+ $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);
+ $this->properties = $exportPluginProperties;
+ }
+}