diff --git a/src/Encoder/Xls.php b/src/Encoder/Xls.php index 3648e56..73cb67e 100644 --- a/src/Encoder/Xls.php +++ b/src/Encoder/Xls.php @@ -130,7 +130,7 @@ class Xls implements EncoderInterface { // Set the width of every column with data in it to AutoSize. if (empty($this->getConfig()->get('xls_serialization_autosize'))) { - $this->setColumnsAutoSize($sheet); + $this->setColumnsAutoSize($sheet, $context); } // Set rows to auto-height. @@ -185,6 +185,8 @@ class Xls implements EncoderInterface { } } + \Drupal::moduleHandler()->invokeAll('xls_serialization_encoder_xls_encode_alter', [&$xls, $context, $data, $format]); + $writer = IOFactory::createWriter($xls, $this->xlsFormat); // @todo utilize a temporary file perhaps? @@ -408,11 +410,8 @@ class Xls implements EncoderInterface { * @param \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet $sheet * The worksheet to set the column width to AutoSize for. */ - protected function setColumnsAutoSize(Worksheet $sheet) { - foreach ($sheet->getColumnIterator() as $column) { - $column_index = $column->getColumnIndex(); - $sheet->getColumnDimension($column_index)->setAutoSize(TRUE); - } + protected function setColumnsAutoSize(Worksheet $sheet, $context) { + \Drupal::moduleHandler()->invokeAll('xls_serialization_encoder_xls_set_columns_autosize_alter', [&$sheet, $context]); } /**