prevent export and invoice from breaking on equal sign (#2054)

This commit is contained in:
Kevin Papst
2020-10-23 02:00:50 +02:00
committed by GitHub
parent 4533c994a3
commit 2ad8f8a4bb
4 changed files with 10 additions and 2 deletions

View File

@@ -21,6 +21,7 @@ use App\Repository\Query\CustomerQuery;
use App\Repository\Query\TimesheetQuery; use App\Repository\Query\TimesheetQuery;
use App\Twig\DateExtensions; use App\Twig\DateExtensions;
use DateTime; use DateTime;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use PhpOffice\PhpSpreadsheet\Shared\Date; use PhpOffice\PhpSpreadsheet\Shared\Date;
use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Border; use PhpOffice\PhpSpreadsheet\Style\Border;
@@ -312,7 +313,7 @@ abstract class AbstractSpreadsheetRenderer
$columns['description']['render'] = function (Worksheet $sheet, int $row, int $column, ExportItemInterface $entity) use (&$isColumnFormatted, $maxWidth, $wrapText) { $columns['description']['render'] = function (Worksheet $sheet, int $row, int $column, ExportItemInterface $entity) use (&$isColumnFormatted, $maxWidth, $wrapText) {
$cell = $sheet->getCellByColumnAndRow($column, $row); $cell = $sheet->getCellByColumnAndRow($column, $row);
$cell->setValue($entity->getDescription()); $cell->setValueExplicit($entity->getDescription(), DataType::TYPE_STRING);
// Apply wrap text if configured // Apply wrap text if configured
if ($wrapText) { if ($wrapText) {

View File

@@ -12,6 +12,7 @@ namespace App\Invoice\Renderer;
use App\Entity\InvoiceDocument; use App\Entity\InvoiceDocument;
use App\Invoice\InvoiceModel; use App\Invoice\InvoiceModel;
use PhpOffice\PhpSpreadsheet\Cell\Cell; use PhpOffice\PhpSpreadsheet\Cell\Cell;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
@@ -93,7 +94,11 @@ abstract class AbstractSpreadsheetRenderer extends AbstractRenderer
$value = str_replace($searchKey, $content, $value); $value = str_replace($searchKey, $content, $value);
} }
$cell->setValue($value); if (\is_string($value)) {
$cell->setValueExplicit($value, DataType::TYPE_STRING);
} else {
$cell->setValue($value);
}
} }
if ($sheetValues !== false && $entryRow < $invoiceItemCount - 1) { if ($sheetValues !== false && $entryRow < $invoiceItemCount - 1) {

View File

@@ -140,6 +140,7 @@ abstract class AbstractRendererTest extends KernelTestCase
->setDuration(400) ->setDuration(400)
->setRate(1947.99) ->setRate(1947.99)
->setUser($user2) ->setUser($user2)
->setDescription('== jhg ljhg ') // make sure that spreadsheets don't render it as formula
->setActivity($activity) ->setActivity($activity)
->setProject($project) ->setProject($project)
->setBegin(new \DateTime()) ->setBegin(new \DateTime())

View File

@@ -162,6 +162,7 @@ trait RendererTestTrait
->setRate(111.11) ->setRate(111.11)
->setUser($user1) ->setUser($user1)
->setActivity($activity2) ->setActivity($activity2)
->setDescription('== jhg ljhg ') // make sure that spreadsheets don't render it as formula
->setProject($project2) ->setProject($project2)
->setBegin(new \DateTime()) ->setBegin(new \DateTime())
->setEnd(new \DateTime()) ->setEnd(new \DateTime())