You are here

class XlsxExporter in Webform XLSX export 8

Class XlsxExporter.

@package Drupal\webform_xlsx_export\Plugin\WebformExporter

Plugin annotation


@WebformExporter(
  id = "xlsx",
  label = @Translation("XLSX"),
  description = @Translation("Exports results as an Office Open XML file."),
  options = FALSE
)

Hierarchy

Expanded class hierarchy of XlsxExporter

1 file declares its use of XlsxExporter
XlsxExporterTest.php in tests/src/Unit/XlsxExporterTest.php

File

src/Plugin/WebformExporter/XlsxExporter.php, line 22

Namespace

Drupal\webform_xlsx_export\Plugin\WebformExporter
View source
class XlsxExporter extends TabularBaseWebformExporter {

  /**
   * PhpSpreadsheet object.
   *
   * @var \PhpOffice\PhpSpreadsheet\Spreadsheet
   */
  private $xls;

  /**
   * {@inheritdoc}
   */
  public function getFileExtension() {
    return 'xlsx';
  }

  /**
   * {@inheritdoc}
   */
  public function createExport() {
    $this->xls = new Spreadsheet();
  }

  /**
   * {@inheritdoc}
   *
   * @throws \PhpOffice\PhpSpreadsheet\Reader\Exception
   */
  public function openExport() {
    $this->xls = IOFactory::load($this
      ->getExportFilePath());
  }

  /**
   * {@inheritdoc}
   *
   * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
   */
  public function closeExport() {
    IOFactory::createWriter($this->xls, "Xlsx")
      ->save($this
      ->getExportFilePath());
  }

  /**
   * {@inheritdoc}
   *
   * @throws \PhpOffice\PhpSpreadsheet\Exception
   */
  public function writeHeader() {
    $sheet = $this->xls
      ->getActiveSheet();
    foreach ($this
      ->buildHeader() as $column => $header) {
      $sheet
        ->setCellValueByColumnAndRow($column + 1, 1, $header);
    }
    $sheet
      ->getStyle('A1:' . $sheet
      ->getHighestColumn() . '1')
      ->getFont()
      ->setBold(TRUE);
  }

  /**
   * {@inheritdoc}
   *
   * @throws \PhpOffice\PhpSpreadsheet\Exception
   */
  public function writeSubmission(WebformSubmissionInterface $webform_submission) {
    $sheet = $this->xls
      ->getActiveSheet();
    $row = $sheet
      ->getHighestRow();
    foreach ($this
      ->buildRecord($webform_submission) as $column => $record) {
      $sheet
        ->setCellValueByColumnAndRow($column + 1, $row + 1, $record);
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
FileHandleTraitWebformExporter::$fileHandle protected property A file handler resource.
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
TabularBaseWebformExporter::$elements protected property An associative array containing webform elements keyed by name.
TabularBaseWebformExporter::$fieldDefinitions protected property An associative array containing a webform's field definitions.
TabularBaseWebformExporter::buildHeader protected function Build export header using webform submission field definitions and webform element columns. 1
TabularBaseWebformExporter::buildRecord protected function Build export record using a webform submission. 2
TabularBaseWebformExporter::formatRecordFieldDefinitionValue protected function Get the field definition value from a webform submission entity.
TabularBaseWebformExporter::getElements protected function Get webform elements.
TabularBaseWebformExporter::getFieldDefinitions protected function Get a webform's field definitions.
WebformExporterBase::$archive protected property Cached archive object.
WebformExporterBase::$configFactory protected property The configuration factory.
WebformExporterBase::$elementManager protected property The webform element manager.
WebformExporterBase::$entityStorage protected property The webform submission storage.
WebformExporterBase::$entityTypeManager protected property The entity type manager.
WebformExporterBase::$logger protected property A logger instance.
WebformExporterBase::$tokenManager protected property The webform token manager.
WebformExporterBase::addToArchive public function Add file, directory, or content to exporter archive. Overrides WebformExporterInterface::addToArchive
WebformExporterBase::addToTarArchive protected function Add file, directory, or content to Tar archive.
WebformExporterBase::addToZipFile protected function Add file, directory, or content to ZIP file.
WebformExporterBase::buildConfigurationForm public function Form constructor. Overrides PluginFormInterface::buildConfigurationForm 4
WebformExporterBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create 1
WebformExporterBase::defaultConfiguration public function Gets default configuration for this plugin. Overrides ConfigurableInterface::defaultConfiguration 4
WebformExporterBase::description public function Returns the results exporter description. Overrides WebformExporterInterface::description
WebformExporterBase::getArchiveFileExtension public function Get archive file extension for a webform. Overrides WebformExporterInterface::getArchiveFileExtension
WebformExporterBase::getArchiveFileName public function Get archive file name for a webform. Overrides WebformExporterInterface::getArchiveFileName
WebformExporterBase::getArchiveFilePath public function Get archive file name and path for a webform. Overrides WebformExporterInterface::getArchiveFilePath
WebformExporterBase::getArchiveType public function Get archive file type. Overrides WebformExporterInterface::getArchiveType
WebformExporterBase::getBaseFileName public function Get export base file name without an extension. Overrides WebformExporterInterface::getBaseFileName
WebformExporterBase::getBatchLimit public function Get the number of submissions to be exported with each batch. Overrides WebformExporterInterface::getBatchLimit 1
WebformExporterBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
WebformExporterBase::getExportFileName public function Get export file name. Overrides WebformExporterInterface::getExportFileName
WebformExporterBase::getExportFilePath public function Get export file path. Overrides WebformExporterInterface::getExportFilePath
WebformExporterBase::getFileTempDirectory public function Get export file temp directory. Overrides WebformExporterInterface::getFileTempDirectory
WebformExporterBase::getSourceEntity protected function Get the webform source entity whose submissions are being exported.
WebformExporterBase::getStatus public function Returns the results exporter status. Overrides WebformExporterInterface::getStatus
WebformExporterBase::getSubmissionBaseName public function Get webform submission base file name. Overrides WebformExporterInterface::getSubmissionBaseName
WebformExporterBase::getWebform protected function Get the webform whose submissions are being exported.
WebformExporterBase::hasFiles public function Determine if exporter can include uploaded files (in a zipped archive). Overrides WebformExporterInterface::hasFiles
WebformExporterBase::hasOptions public function Determine if exporter has options. Overrides WebformExporterInterface::hasOptions
WebformExporterBase::isArchive public function Determine if exporter generates an archive. Overrides WebformExporterInterface::isArchive
WebformExporterBase::isExcluded public function Checks if the exporter is excluded via webform.settings. Overrides WebformExporterInterface::isExcluded
WebformExporterBase::label public function Returns the results exporter label. Overrides WebformExporterInterface::label
WebformExporterBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration 1
WebformExporterBase::submitConfigurationForm public function Form submission handler. Overrides PluginFormInterface::submitConfigurationForm
WebformExporterBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm
WebformExporterBase::writeFooter public function Write footer to export. Overrides WebformExporterInterface::writeFooter 1
WebformExporterBase::__construct public function Constructs a WebformExporterBase object. Overrides PluginBase::__construct 1
WebformExporterInterface::ARCHIVE_TAR constant Tar archive.
WebformExporterInterface::ARCHIVE_ZIP constant ZIP file.
XlsxExporter::$xls private property PhpSpreadsheet object.
XlsxExporter::closeExport public function Overrides FileHandleTraitWebformExporter::closeExport
XlsxExporter::createExport public function Overrides FileHandleTraitWebformExporter::createExport
XlsxExporter::getFileExtension public function Get export file extension. Overrides WebformExporterBase::getFileExtension
XlsxExporter::openExport public function Overrides FileHandleTraitWebformExporter::openExport
XlsxExporter::writeHeader public function Overrides WebformExporterBase::writeHeader
XlsxExporter::writeSubmission public function Overrides WebformExporterBase::writeSubmission